joewein.net   joewein.de LLC
fighting spam and scams on the Internet
Try our spam filter!
Free trial for 30 days
  jwSpamSpy

Home
About Us
Spam
419/Nigeria
Fraud
Contact

"419" Scam – Advance Fee / Fake Lottery Scam

The so-called "419" scam is a type of fraud dominated by criminals from Nigeria and other countries in Africa. Victims of the scam are promised a large amount of money, such as a lottery prize, inheritance, money sitting in some bank account, etc.

Victims never receive this non-existent fortune but are tricked into sending their money to the criminals, who remain anonymous. They hide their real identity and location by using fake names and fake postal addresses as well as communicating via anonymous free email accounts and mobile phones.

Keep in mind that scammers DO NOT use their real names when defrauding people.
The criminals either abuse names of real people or companies or invent names or addresses.
Any real people or companies mentioned below have NO CONNECTION to the scammers!

Read more about such scams here or in our 419 FAQ. Use the Scam-O-Matic to verify suspect emails.

Click here to report a problem with this page.

 

 

Some comments by the Scam-O-Matic about the following email:

Fraud email example:

From: DHL Delivery Express <pjc@ohsungec.com>
Date: 13 Feb 2022 03:59:11 +0100
Subject: info, You have DHL package, See attached bill of lading

PGh0bWwgZGlyPSJsdHIiIGxhbmc9ImVuIj4NCjxoZWFkPg0KCTxtZXRhIGNvbnRlbnQ9InRl eHQvaHRtbDsgY2hhcnNldD1VVEYtOCIgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiANCg0K Lz4NCgk8bWV0YSBjb250ZW50PSJJRT1lZGdlIiBodHRwLWVxdWl2PSJYLVVBLUNvbXBhdGli bGUiIC8+DQoJPG1ldGEgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNj YWxlPTEuMCwgbWF4aW11bS0NCg0Kc2NhbGU9Mi4wLCB1c2VyLXNjYWxhYmxlPXllcyIgbmFt ZT0idmlld3BvcnQiIC8+DQoJPG1ldGEgY29udGVudD0ibm8tY2FjaGUiIGh0dHAtZXF1aXY9 IlByYWdtYSIgLz4NCgk8bWV0YSBjb250ZW50PSItMSIgaHR0cC1lcXVpdj0iRXhwaXJlcyIg Lz4NCgk8bGluayBjcm9zc29yaWdpbj0iIiBocmVmPSJodHRwczovL2FhZGNkbi5tc2Z0YXV0 aC5uZXQiIA0KDQpyZWw9InByZWNvbm5lY3QiIC8+DQoJPG1ldGEgY29udGVudD0ib24iIGh0 dHAtZXF1aXY9IngtZG5zLXByZWZldGNoLWNvbnRyb2wiIC8+DQoJPGxpbmsgaHJlZj0iLy9h YWRjZG4ubXNmdGF1dGgubmV0IiByZWw9ImRucy1wcmVmZXRjaCIgLz4NCgk8bGluayBocmVm PSIvL2FhZGNkbi5tc2F1dGgubmV0IiByZWw9ImRucy1wcmVmZXRjaCIgLz4NCgk8bWV0YSBj b250ZW50PSJzaWdub3V0IiBuYW1lPSJQYWdlSUQiIC8+DQoJPG1ldGEgY29udGVudD0iIiBu YW1lPSJTaXRlSUQiIC8+DQoJPG1ldGEgY29udGVudD0iMTAzMyIgbmFtZT0iUmVxTEMiIC8+ DQoJPG1ldGEgY29udGVudD0iZW4tVVMiIG5hbWU9IkxvY0xDIiAvPg0KCTxsaW5rIA0KDQpo cmVmPSJodHRwczovL2FhZGNkbi5tc2Z0YXV0aC5uZXQvc2hhcmVkLzEuMC9jb250ZW50L2lt YWdlcy9mYXZpY29uX2FfZXVwYQ0KDQp5ZmdnaHFpYWk3azlzb2w2bGcyLmljbyIgcmVsPSJz aG9ydGN1dCBpY29uIiAvPg0KCTxtZXRhIGNvbnRlbnQ9Im5vbmUiIG5hbWU9InJvYm90cyIg Lz48c2NyaXB0IA0KDQp0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPi8vPCFbQ0RBVEFbDQokQ29u ZmlnPXsiY29icmFuZGluZyI6eyJiYXNlIjoiYXBwIiwibGFiZWwiOiJXb3JrIG9yIHNjaG9v bCwgb3IgcGVyc29uYWwgDQoNCk1pY3Jvc29mdCBhY2NvdW50IiwibGFiZWxUZW5hbnQiOiJX b3JrIG9yIHNjaG9vbCwgb3IgcGVyc29uYWwgTWljcm9zb2Z0IA0KDQphY2NvdW50IiwiYWN0 aXZlIjoiYXBwIiwiaW5pdGlhbCI6ImFwcCIsImFwcCI6DQoNCnsiSWxsdXN0cmF0aW9uIjoi aHR0cHM6Ly9hYWRjZG4ubXNmdGF1dGgubmV0L3NoYXJlZC8xLjAvY29udGVudC9pbWFnZXMv ZGVmDQoNCmF1bHRfc2lnbmluX2lsbHVzdHJhdGlvbl81by16OGJxNGZwZDdpeDhrbmwtDQoN CnQ5cTIucG5nIiwiQmFubmVyTG9nbyI6IiIsIkxvZ29UZXh0IjoiSGFuZyBvbiBhIG1vbWVu dCB3aGlsZSB3ZSBzaWduIHlvdSANCg0Kb3V0LiIsIkJhY2tyb3VuZENvbG9yIjoiIzAwNzJj NiIsIkJvaWxlclBsYXRlVGV4dCI6IiJ9LCJ0ZW5hbnQiOg0KDQp7fX0sInRpbGVzIjp7ImFh ZFVzZXJzIjpbXSwibXNhVXNlcnMiOltdLCJ1c2VycyI6W10sIm90aGVyVXNlciI6DQoNCnsi bmFtZSI6IlVzZSBhbm90aGVyIA0KDQphY2NvdW50IiwibG9naW4iOiIiLCJpbWFnZUFBRCI6 InVzZV9hbm90aGVyX2FjY291bnQucG5nIiwiaW1hZ2VNU0EiOiJ1c2VfYQ0KDQpub3RoZXJf YWNjb3VudC5wbmciLCJpc0xpdmUiOmZhbHNlLCJsaW5rIjoib3RoZXIiLCJhdXRoVXJsIjoi Iiwic2Vzc2lvbklEIg0KDQo6IiIsImRvbWFpbkhpbnQiOiJvdGhlciJ9LCJzcGxpdHRlclRp bGVzVXNlcnMiOlt7ImlkIjoiYWFkIiwibmFtZSI6IldvcmsgDQoNCm9yIHNjaG9vbCBhY2Nv dW50IiwibG9naW4iOiJDcmVhdGVkIGJ5IHlvdXIgSVQgDQoNCmRlcGFydG1lbnQiLCJpbWFn ZSI6Imh0dHBzOi8vYWFkY2RuLm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2ltYWdl cy93DQoNCm9ya19hY2NvdW50X2d3cGdzempyZHptZzl0LWV0b3RkbGcyLnBuZyJ9LHsiaWQi OiJtc2EiLCJuYW1lIjoiUGVyc29uYWwgDQoNCmFjY291bnQiLCJsb2dpbiI6IkNyZWF0ZWQg YnkgDQoNCnlvdSIsImltYWdlIjoiaHR0cHM6Ly9hYWRjZG4ubXNmdGF1dGgubmV0L2VzdHMv Mi4xL2NvbnRlbnQvaW1hZ2VzL3BlcnNvbmFsDQoNCl9hY2NvdW50X2QzazFscXlhOGs1X21t YmxnZzg1cnEyLnBuZyJ9XX0sImNvbnN0YW50cyI6eyJkYmdNZXNzYWdlcyI6DQoNCltdLCJN RU1CRVJfTkFNRSI6IiIsIkZFREVSQVRJT05fUVVFUllfUEFSQU1FVEVSUyI6Ij91c2VybmFt ZT0NCg0KXHUwMDI2d2E9d3NpZ25pbjEuMFx1MDAyNnd0cmVhbG09dXJuJTNhZmVkZXJhdGlv biUzYU1pY3Jvc29mdE9ubGluZQ0KDQpcdTAwMjZ3Y3R4PSIsIkJBU0VfVVJMIjoiL2NvbW1v bi9vYXV0aDIvbG9nb3V0PyIsIkxBVEVOQ1lfVEhSRVNIT0xEIjoyMDAwLA0KDQoiQ0ROX0lN QUdFX1BBVEgiOiJodHRwczovL2FhZGNkbi5tc2Z0YXV0aC5uZXQvZXN0cy8yLjEvY29udGVu dC9pbWFnZXMvIiwiSQ0KDQpTX1VTRV9PVEhFUl9BQ0NPVU5UX1ZJU0lCTEUiOmZhbHNlLCJN QVhfVVNFUl9USUxFUyI6NSwiUEFSVE5FUl9OQU1FIjoiU2lnbiANCg0KaW4gd2l0aCB5b3Vy IHdvcmsgb3Igc2Nob29sIA0KDQphY2NvdW50IiwiTUVUUklDU19NT0RFIjoxLCJUb2tlbml6 ZWRTdHJpbmdNc2dzIjoNCg0KeyJHRU5FUklDX0VSUk9SIjoiXHUwMDNjSDFcdTAwM2VTb3Jy eSwgYnV0IHdlXHUwMDI3cmUgaGF2aW5nIHRyb3VibGUgDQoNCnNpZ25pbmcgeW91IGluXHUw MDNjL0gxXHUwMDNlXHUwMDNjcFx1MDAzZVBsZWFzZSB0cnkgYWdhaW4gaW4gYSBmZXcgDQoN Cm1pbnV0ZXMuIElmIHRoaXMgZG9lc25cdTAwMjd0IHdvcmssIHlvdSBtaWdodCB3YW50IHRv IGNvbnRhY3QgeW91ciBhZG1pbiANCg0KYW5kIHJlcG9ydCB0aGUgZm9sbG93aW5nIGVycm9y OiAjfiNFcnJvckNvZGUjfiMuXHUwMDNjL3ANCg0KXHUwMDNlIiwiVVBOX0RJU0FNQklHVUFU RV9NRVNTQUdFIjoiSXQgbG9va3MgbGlrZSB7MH0gaXMgdXNlZCB3aXRoIG1vcmUgDQoNCnRo YW4gb25lIGFjY291bnQuIFdoaWNoIGFjY291bnQgZG8geW91IHdhbnQgdG8gDQoNCnVzZT8i fSwiUkVBTE1fUkVTT0xWRVJfVVJMIjoiL2NvbW1vbi91c2VycmVhbG0iLCJGT1JDRURfU0lH Tl9JTiI6ZmFsc2UsImlzDQoNCkN4aFJlcXVlc3QiOmZhbHNlLCJpc0FkYWxSZXF1ZXN0Ijpm YWxzZSwiSVNfTkFNRV9DT0VYSVNURU5DRV9BQ0NPVU5UIjpmYWxzDQoNCmUsImFkYWxVeE92 ZXJyaWRlIjpmYWxzZSwiY2FuY2VsUmVkaXJlY3RVcmwiOiIiLCJJU19NU0FfRkVEX1NVUFBP UlRFRCI6dHJ1DQoNCmUsIklTX01TQV9QSE9ORV9VU0VSTkFNRV9TVVBQT1JURUQiOnRydWUs IklTX01TQV9SRURJUl9TVVBQT1JURUQiOmZhbHNlLCJNDQoNClNBX0RPTUFJTiI6ImxpdmUu Y29tIiwiUFJPTVBUIjoiIiwiVVNFUk5BTUVfSElOVF9URVhUIjoiRW1haWwgb3IgDQoNCnBo b25lIiwiSVNfTE9HT1VUX1JFUVVFU1QiOnRydWUsIlNIT1VMRF9ISURFX1NJR05VUCI6ZmFs c2UsIlVTRV9EQVJLX1RJTEVfDQoNCkxPR08iOmZhbHNlLCJIQVNfRVJST1IiOmZhbHNlLCJJ U19NT0JJTEUiOmZhbHNlLCJtb2JpbGVXaWR0aFRocmVzaG9sZCI6NjAwDQoNCiwidXhMb2dv dXRVcmwiOiJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uL3V4bG9n b3V0IiwiZm9yZ2V0DQoNClVybCI6Imh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNv bS9mb3JnZXR1c2VyIiwiSVNfSE9MT0dSQVBISUMiOmZhbHNlDQoNCiwic2F2ZWRUaWxlcyI6 eyJvdGhlckpTT04iOnsibmFtZSI6IlVzZSBhbm90aGVyIA0KDQphY2NvdW50IiwibG9naW4i OiIiLCJpbWFnZUFBRCI6Im90aGVyX2dseXBoLnBuZyIsImltYWdlTVNBIjoib3RoZXJfZ2x5 cGgucA0KDQpuZyIsImlzTGl2ZSI6ZmFsc2UsImxpbmsiOiJvdGhlciIsImF1dGhVcmwiOiIi LCJzZXNzaW9uSUQiOiIiLCJkb21haW5IaW50Ig0KDQo6Im90aGVyIn19LCJVc2VfQ2xpZW50 X0NoZWNrX01zYV9GbGFnIjp0cnVlLCJpc0RlYnVnTW9kZSI6ZmFsc2UsInJlcXVlc3QiOg0K DQp7InVhaWQiOiJiMDRlZDE4ZTlkYzU0N2MyODY2YTBjN2ViYmY3MTYxZCIsImlzc3Vlcklk ZW50aWZpZXIiOiJtc28iLCJpc01zYQ0KDQpTdXBwb3J0ZWQiOnRydWV9LCJMb2NhbGUiOiJl bi0NCg0KVVMiLCJyZXNwb25zZU1vZGUiOiJRdWVyeSIsIklzQjJDU2NlbmFyaW8iOmZhbHNl LCJzaG93VGlsZXNPblBhZ2VMb2FkIjp0cnUNCg0KZSwic2tpcE1lQ29udHJvbE9uUGFnZUxv YWQiOnRydWUsIm9uUHJlbVBhc3N3b3JkVmFsaWRhdGlvbkNvbmZpZyI6DQoNCnsiaXNVc2Vy UmVhbG1QcmVjaGVja0VuYWJsZWQiOnRydWV9LCJkZXNrdG9wU3NvQ29uZmlnIjoNCg0KeyJp c0VkZ2VBbmFoZWltQWxsb3dlZCI6dHJ1ZSwiaXdhRW5kcG9pbnRVcmxGb3JtYXQiOiJodHRw czovL2F1dG9sb2dvbi5taWMNCg0Kcm9zb2Z0YXp1cmVhZC1zc28uY29tLw0KDQp7MH0vd2lu YXV0aC9zc28iLCJpd2FTc29Qcm9iZVVybEZvcm1hdCI6Imh0dHBzOi8vYXV0b2xvZ29uLm1p Y3Jvc29mdGF6dXJlYQ0KDQpkLXNzby5jb20vDQoNCnswfS93aW5hdXRoL3Nzb3Byb2JlIiwi aXdhSUZyYW1lVXJsRm9ybWF0IjoiaHR0cHM6Ly9hdXRvbG9nb24ubWljcm9zb2Z0YXp1DQoN CnJlYWQtc3NvLmNvbS97MH0vd2luYXV0aC9pZnJhbWU/DQoNCmlzQWRhbFJlcXVlc3Q9RmFs c2UiLCJpd2FSZXF1ZXN0VGltZW91dEluTXMiOjEwMDAwLCJzdGFydERlc2t0b3BTc29PblBh Z2VMDQoNCm9hZCI6ZmFsc2UsInByb2dyZXNzQW5pbWF0aW9uVGltZW91dCI6MTAwMDAsImlz RWRnZUFsbG93ZWQiOmZhbHNlLCJpc1NhZmFyDQoNCmlBbGxvd2VkIjp0cnVlLCJpc0lFQWxs b3dlZEZvclNzb1Byb2JlIjp0cnVlLCJlZGdlUmVkaXJlY3RVcmkiOiJodHRwczovL2F1DQoN CnRvbG9nb24ubWljcm9zb2Z0YXp1cmVhZC1zc28uY29tL3swfS93aW5hdXRoL3Nzby9lZGdl cmVkaXJlY3Q/DQoNCm9yaWdpbj1sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tIn0sIm1zYU1l Q29udHJvbFRpbWVvdXQiOjUwMDB9LCJzY2lkIjoxMDMwDQoNCiwiaHBnYWN0IjoxODAyLCJo cGdpZCI6ODAwMiwicGdpZCI6InNpZ25vdXQiLCJhcGlDYW5hcnkiOiJBUUFCQUFBQUFBQjJV eXp3DQoNCnRRRUtSNy1yV2JnZGNCWkl3TkEtDQoNClprcDBxdDRXeDNsaTFKb3RNUXVQbkE3 aTJ2TDA5OFpiM0tKRWNrV1p3d3IyRURQeXBLUFFKMUtwdTdzaUVpWEhjb0NmT25hU3ZtDQoN CkpoTUNFTmNRRzkyX1lyQTd0TDhUdXFGRnNpQXJGUWZPWWtiWkpxXzNublZ3Tzk4NTg4ZDBp cUV6UV9GTmpOR3lYejY4NFBkWS0NCg0KQlVQRS01eVVWc3pqa2lhRE1uWS0NCg0KaV9vVGo3 eE8yRjhhc0J4b3ZVRVVZVFg0Y0paV29tQVBQSVlTeHp5NXhNeUFBIiwiY2FuYXJ5IjoiOVgy TU1tWEM4MWpGa081c1MNCg0KMUJXb1FzWUVzeXFmTnJzVVkrK3Z0Q1o1eW89MDoxIiwiY29y cmVsYXRpb25JZCI6IjcyOTQxY2JiLWM3MTQtNGMyYS1iMDdhLQ0KDQpmNjU2YWEwOTMxNzMi LCJzZXNzaW9uSWQiOiJjY2JkOGI0Yy1kNWFhLTRlNTMtYWJlNC0NCg0KNjIxZDNlMDRhMzAx IiwibG9jYWxlIjp7Im1rdCI6ImVuLQ0KDQpVUyIsImxjaWQiOjEwMzN9LCJzbE1heFJldHJ5 IjoyLCJzbFJlcG9ydEZhaWx1cmUiOnRydWUsInN0cmluZ3MiOg0KDQp7ImRlc2t0b3Bzc28i OnsiYXV0aGVudGljYXRpbmdtZXNzYWdlIjoiVHJ5aW5nIHRvIHNpZ24geW91IGluIn0sIm1z YSI6DQoNCnsibGFiZWwiOiIoTWljcm9zb2Z0IGFjY291bnQpIiwiYWNjb3VudCI6eyJpbWdh bHR0ZXh0IjoiTWljcm9zb2Z0IGFjY291bnQgDQoNCnN5bWJvbCIsInRpbGVhbHR0ZXh0Ijoi TWljcm9zb2Z0IGFjY291bnQgZm9yIHswfSJ9LCJyZWRpcmVjdCI6IldlP3JlIA0KDQp0YWtp bmcgeW91IHRvIHRoZSBNaWNyb3NvZnQgYWNjb3VudCBzaWduLWluIHBhZ2UuIn0sImFhZCI6 eyJhY2NvdW50IjoNCg0KeyJpbWdhbHR0ZXh0IjoiV29yayBvciBzY2hvb2wgYWNjb3VudCBz eW1ib2wiLCJ0aWxlYWx0dGV4dCI6Ildvcmsgb3IgDQoNCnNjaG9vbCBhY2NvdW50IGZvciB7 MH0ifSwicmVkaXJlY3QiOiJXZVx1MDAyN3JlIHRha2luZyB5b3UgdG8geW91ciANCg0Kb3Jn YW5pemF0aW9uXHUwMDI3cyBzaWduLWluIHBhZ2UuIn0sImNsb3VkZmVkIjp7InJlZGlyZWN0 IjoiV2VcdTAwMjdyZSANCg0KdGFraW5nIHlvdSB0byB5b3VyIG9yZ2FuaXphdGlvblx1MDAy N3Mgc2lnbi1pbiANCg0KcGFnZS4ifSwib3RoZXJhY2NvdW50dGV4dCI6IlVzZSBhbm90aGVy IGFjY291bnQiLCJjbGlja2Zvcm1vcmUiOiJDbGljayBmb3IgDQoNCm1vcmUgYWN0aW9ucyIs ImNvbm5lY3RlZHRvd2luZG93cyI6IkNvbm5lY3RlZCB0byANCg0KV2luZG93cyIsInNpZ25l ZGluIjoiU2lnbmVkIGluIiwiY2xpY2t0b3NpZ25pbiI6IiIsInNpZ25pbmdvdXQiOiJTaWdu aW5nIA0KDQpvdXQuLi4iLCJhY2NvdW50aW1hZ2VhbHR0ZXh0IjoiVXNlciBhY2NvdW50IGlt YWdlIiwiaGVhZGVyIjp7InRleHQiOg0KDQp7InVzZXJuYW1lIjoiU2lnbiBpbiB3aXRoIHlv dXIgd29yayBhY2NvdW50IiwicGFzc3dvcmQiOiJFbnRlciB5b3VyIA0KDQpwYXNzd29yZCIs InByaXZhY3kiOiJQcml2YWN5IHN0YXRlbWVudCJ9fSwiZGlzYW1iaWd1YXRpb24iOg0KDQp7 ImRlc2NyaXB0aW9uIjoiSXQgbG9va3MgbGlrZSB7MH0gaXMgdXNlZCB3aXRoIG1vcmUgdGhh biBvbmUgYWNjb3VudC4gDQoNCldoaWNoIGFjY291bnQgZG8geW91IHdhbnQgdG8gdXNlPyIs InRpbWVvdXQiOiJXZVx1MDAyN3JlIGhhdmluZyB0cm91YmxlIA0KDQpsb2NhdGluZyB5b3Vy IGFjY291bnQuIFdoaWNoIHR5cGUgb2YgYWNjb3VudCBkbyB5b3Ugd2FudCB0byANCg0KdXNl PyJ9LCJlcnJvcnMiOnsiMzAxMzYiOiJUeXBlIHRoZSBlbWFpbCBhZGRyZXNzIG9yIHBob25l IG51bWJlciBvZiB0aGUgDQoNCmFjY291bnQgeW91IHdhbnQgdG8gc2lnbiBpbiB3aXRoLiIs IjMwMDY0Ijp7InRpdGxlIjoiVGhpcyBkb2Vzblx1MDAyN3QgDQoNCmxvb2sgbGlrZSBhIHZh bGlkIHVzZXIgSUQiLCJkZXNjcmlwdGlvbiI6IlRyeSB1c2luZyB5b3VyIGVtYWlsIGFkZHJl c3Mgb3IgDQoNCnBob25lIG51bWJlci4ifSwiMzAwMDgiOiJTaWduIGluIHRvIHswfSIsIjMw MDY3IjoiXHUwMDNjSDFcdTAwM2VXZSBkb24NCg0KXHUwMDI3dCByZWNvZ25pemUgdGhpcyB1 c2VyIElEIG9yIHBhc3N3b3JkXHUwMDNjL0gxXHUwMDNlXHUwMDNjcFx1MDAzZUJlIA0KDQpz dXJlIHRvIHR5cGUgdGhlIHBhc3N3b3JkIGZvciB5b3VyIHdvcmsgb3Igc2Nob29sIGFjY291 bnQuXHUwMDNjL3ANCg0KXHUwMDNlIiwiMzAwNjgiOnsidGl0bGUiOiJcdTAwM2NIMVx1MDAz ZXswfSBpc25cdTAwMjd0IGluIG91ciBzeXN0ZW0NCg0KXHUwMDNjL0gxXHUwMDNlXHUwMDNj cFx1MDAzZU1ha2Ugc3VyZSB5b3UgdHlwZWQgeW91ciBlbWFpbCBhZGRyZXNzIA0KDQpjb3Jy ZWN0bHkuIEl0IHVzdWFsbHkgbG9va3MgbGlrZSBzb21lb25lQGV4YW1wbGUuY29tIG9yIA0K DQpzb21lb25lQGV4YW1wbGUub25taWNyb3NvZnQuY29tXHUwMDNjL3BcdTAwM2UiLCJkZXNj cmlwdGlvbiI6Ik1ha2Ugc3VyZSANCg0KeW91IHR5cGVkIHlvdXIgZW1haWwgYWRkcmVzcyBj b3JyZWN0bHkuIEl0IHVzdWFsbHkgbG9va3MgbGlrZSANCg0Kc29tZW9uZUBleGFtcGxlLmNv bSBvciBzb21lb25lQGV4YW1wbGUub25taWNyb3NvZnQuY29tIn0sIjMwMTExIjoiUGxlYXNl IA0KDQplbnRlciB5b3VyIHBhc3N3b3JkLiIsIjMwMTI3IjoiVG8gc2lnbiBpbiwgc3RhcnQg YnkgZW50ZXJpbmcgYSB1c2VyIA0KDQpJRC4iLCIzMDE0MCI6IldlXHUwMDI3cmUgaGF2aW5n IHRyb3VibGUgbG9jYXRpbmcgeW91ciBhY2NvdW50LiBXaGljaCB0eXBlIA0KDQpvZiBhY2Nv dW50IGRvIHlvdSB3YW50IHRvIHVzZT8iLCIzMDE0NSI6IkNoZWNrIHRoZSBlbWFpbCBhZGRy ZXNzIHlvdSANCg0KZW50ZXJlZC4gWW91IG1heSBoYXZlIG1pc3R5cGVkIGl0LiIsIjMwMTQ2 Ijp7InRpdGxlIjoiV2UgY291bGRuXHUwMDI3dCANCg0KZmluZCBhbiBhY2NvdW50IHdpdGgg dGhhdCBlbWFpbCBhZGRyZXNzLiIsImRlc2NyaXB0aW9uIjoiRW50ZXIgYSBkaWZmZXJlbnQg DQoNCmVtYWlsIGFkZHJlc3Mgb3IgXHUwMDNjYSBpZD1cdTAwMjJ1c2VyLW5vdC1mb3VuZC1s aW5rXHUwMDIyIGhyZWY9XHUwMDIyIw0KDQpcdTAwMjJcdTAwM2VnZXQgYSBuZXcgTWljcm9z b2Z0IGFjY291bnRcdTAwM2MvYVx1MDAzZS4ifSwiMzAxNjgiOg0KDQp7InRpdGxlIjoiV2Ug ZG9uXHUwMDI3dCByZWNvZ25pemUgdGhpcyBkb21haW4gbmFtZSIsImRlc2NyaXB0aW9uIjoi TWFrZSANCg0Kc3VyZSB5b3UgdHlwZWQgeW91ciBvcmdhbml6YXRpb25cdTAwMjdzIGRvbWFp biBuYW1lIGNvcnJlY3RseS4gSXQgdXN1YWxseSANCg0KbG9va3MgbGlrZSBAZXhhbXBsZS5j b20gb3IgQGV4YW1wbGUub25taWNyb3NvZnQuY29tLiJ9LCIzMDE3MyI6IldoaWNoIHR5cGUg DQoNCm9mIGFjY291bnQgZG8geW91IHdhbnQgdG8gc2lnbiBpbiB3aXRoPyIsIjMwMjAwIjoi IiwiY2F0Y2hhbGwiOiJXZSBkaWRuDQoNClx1MDAyN3QgcmVjZWl2ZSBhIHJlc3BvbnNlLiBQ bGVhc2UgdHJ5IGFnYWluLiJ9fSwiZW51bXMiOg0KDQp7IkNsaWVudE1ldHJpY3NNb2RlcyI6 DQoNCnsiTm9uZSI6MCwiU3VibWl0T25Qb3N0IjoxLCJTdWJtaXRPblJlZGlyZWN0IjoyLCJJ bnN0cnVtZW50UGx0Ijo0fSwiTmFtZVNwDQoNCmFjZVR5cGUiOnsiTm9uZSI6MCwiTWFuYWdl ZCI6MSwiRmVkZXJhdGVkIjoyfX0sInVybHMiOnsiaW5zdHIiOg0KDQp7InBhZ2Vsb2FkIjoi aHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vbi9pbnN0cnVtZW50YXRp b24vcmVwbw0KDQpydHBhZ2Vsb2FkIiwiZHNzb3N0YXR1cyI6Imh0dHBzOi8vbG9naW4ubWlj cm9zb2Z0b25saW5lLmNvbS9jb21tb24vaW5zdHJ1bQ0KDQplbnRhdGlvbi9kc3Nvc3RhdHVz In0sImRpc2FtYmlnaGVscHVybCI6Imh0dHBzOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsv cA0KDQovP0xpbmtJRD03MzMyNDciLCJtc2EiOnsibWV1cmwiOiJodHRwczovL2xvZ2luLmxp dmUuY29tL01lLnNyZj8NCg0Kd2E9d3NpZ25pbjEuMFx1MDAyNmlkcGZsYWc9ZGlyZWN0DQoN Clx1MDAyNndyZXBseT0iLCJvYXV0aGF1dGhvcml6ZXVybCI6Imh0dHBzOi8vbG9naW4ubGl2 ZS5jb20vb2F1dGgyMF9hdXRob3JpDQoNCnplLnNyZiIsInNpZ25vdXR1cmwiOm51bGwsInBh c3N3b3JkcmVzZXR1cmwiOiJodHRwczovL2FjY291bnQubGl2ZS5jb20vcGFzDQoNCnN3b3Jk L3Jlc2V0IiwibWFuYWdlYWNjb3VudHVybCI6Imh0dHBzOi8vYWNjb3VudC5taWNyb3NvZnQu Y29tIiwic2luZ2xldXNlDQoNCmNvZGUiOiJodHRwOi8vd2luZG93cy5taWNyb3NvZnQuY29t L2VuLVVTL3dpbmRvd3MtbGl2ZS9zaWduLWluLXNpbmdsZS0NCg0KdXNlLWNvZGUiLCJzaWdu dXB1cmwiOm51bGx9LCJzdHlsZSI6DQoNCnsibG9naW5ob3ZlciI6Imh0dHBzOi8vYWFkY2Ru Lm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2NkbmJ1bmRsZXMvbG9nDQoNCmluX2hv dmVyLm1pbl9sanY0bmR2cm5renhhd2V0N2RueHB3Mi5jc3MifSwiYWdyZWVtZW50IjoNCg0K eyJ0b3UiOiJodHRwczovL3d3dy5taWNyb3NvZnQuY29tL2VuLQ0KDQpVUy9zZXJ2aWNlc2Fn cmVlbWVudC8iLCJwcml2YWN5IjoiaHR0cHM6Ly9wcml2YWN5Lm1pY3Jvc29mdC5jb20vZW4t DQoNClVTL3ByaXZhY3lzdGF0ZW1lbnQifSwicmVmcmVzaHVybCI6bnVsbCwiYXBwcmVkaXJl Y3R1cmwiOm51bGx9LCJicm93c2VyIjoNCg0KeyJsdHIiOjEsIkZpcmVmb3giOjEsIl9NYWMi OjEsIl9NODMiOjEsIl9EMCI6MSwiRnVsbCI6MSwiUkVfR2Vja28iOjEsImIiOg0KDQp7Im5h bWUiOiJGaXJlZm94IiwibWFqb3IiOjgzLCJtaW5vciI6MH0sIm9zIjoNCg0KeyJuYW1lIjoi T1NYIiwidmVyc2lvbiI6IiJ9LCJWIjoiODMuMCJ9LCJ3YXRzb24iOg0KDQp7InVybCI6Ii9j b21tb24vaGFuZGxlcnMvd2F0c29uIiwiYnVuZGxlIjoiaHR0cHM6Ly9hYWRjZG4ubXNmdGF1 dGgubmV0L2VzdA0KDQpzLzIuMS9jb250ZW50L2NkbmJ1bmRsZXMvd2F0c29uLm1pbl95YmRi MWl4emt2LQ0KDQpma29yMm11NnE2dzIuanMiLCJzYnVuZGxlIjoiaHR0cHM6Ly9hYWRjZG4u bXNmdGF1dGgubmV0L2VzdHMvMi4xL2NvbnRlbnQvYw0KDQpkbmJ1bmRsZXMvd2F0c29uc3Vw cG9ydC5taW5fX3lva19jaHdzZXlwd2JtdWZmbm5hYTIuanMiLCJmYnVuZGxlIjoiaHR0cHM6 Lw0KDQovYWFkY2RuLm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2NkbmJ1bmRsZXMv ZnJhbWV3b3Jrc3VwcG9ydC5taW5fb2Fkcg0KDQpuYzEzbWFnYjAwOWs0ZDIwbGcyLmpzIiwi cmVzZXRFcnJvclBlcmlvZCI6NSwibWF4Q29yc0Vycm9ycyI6LQ0KDQoxLCJtYXhJbmplY3RF cnJvcnMiOjUsIm1heEVycm9ycyI6MTAsIm1heFRvdGFsRXJyb3JzIjozLCJleHBTcmNzIjoN Cg0KWyJodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20iLCJodHRwczovL2FhZGNk bi5tc2F1dGgubmV0LyIsImh0dHBzOi8NCg0KL2FhZGNkbi5tc2Z0YXV0aC5uZXQvIiwiLmxv Z2luLm1pY3Jvc29mdG9ubGluZS5jb20iXSwiZW52RXJyb3JSZWRpcmVjdCI6dHINCg0KdWUs ImVudkVycm9yVXJsIjoiL2NvbW1vbi9oYW5kbGVycy9lbnZlcnJvciJ9LCJsb2FkZXIiOnsi Y2RuUm9vdHMiOg0KDQpbImh0dHBzOi8vYWFkY2RuLm1zYXV0aC5uZXQvIiwiaHR0cHM6Ly9h YWRjZG4ubXNmdGF1dGgubmV0LyJdLCJsb2dCeVRocm93aQ0KDQpuZyI6dHJ1ZX0sInNlcnZl ckRldGFpbHMiOg0KDQp7InNsYyI6IlByb2RTbGljZXMiLCJkYyI6Ik5FVUxSMiIsInJpIjoi RFUyWFhYWCIsInZlciI6eyJ2IjoNCg0KWzIsMSwxMTI1MSwyMF19LCJydCI6IjIwMjAtMTEt DQoNCjMwVDIxOjI0OjQ2IiwiZXQiOjQ3fSwiZkJyZWFrQnJhbmRpbmdTaWduaW5TdHJpbmci OnRydWUsImZGaXhJbmNvcnJlY3RBcGlDDQoNCmFuYXJ5VXNhZ2UiOnRydWUsInVybE5vQ29v a2llcyI6Imh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS9jb29raWVzDQoNCmRp c2FibGVkIiwiZlRyaW1DaHJvbWVCc3NvVXJsIjp0cnVlLCJpbmxpbmVNb2RlIjo1LCJmU2hv d0NvcHlEZWJ1Z0RldGFpbHNMDQoNCmluayI6dHJ1ZX07DQovL11dPjwvc2NyaXB0PjxzY3Jp cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWw0KIWZ1bmN0aW9uKCl7dmFy IGU9d2luZG93LHI9ZS4kRGVidWc9ZS4kRGVidWd8fHt9LHQ9ZS4kQ29uZmlnfHx7fTtpZigh DQoNCnIuYXBwZW5kTG9nKXt2YXIgbj1bXSxvPTA7ci5hcHBlbmRMb2c9ZnVuY3Rpb24oZSl7 dmFyIHI9dC5tYXhEZWJ1Z0xvZ3x8DQoNCjI1LGE9KG5ldyBEYXRlKS50b1VUQ1N0cmluZygp KyI6IitlO24ucHVzaChvKyI6IithKSxuLmxlbmd0aD5yJiZuLnNoaWZ0DQoNCigpLG8rK30s ci5nZXRMb2dzPWZ1bmN0aW9uKCl7cmV0dXJuIG59fX0oKSxmdW5jdGlvbigpe2Z1bmN0aW9u IGUoZSxyKQ0KDQp7ZnVuY3Rpb24gdChhKXt2YXIgaT1lW2FdO2lmKGE8bi0xKXtyZXR1cm4g dm9pZChvLnJbaV0/dChhKzEpOm8ud2hlbg0KDQooaSxmdW5jdGlvbigpe3QoYSsxKX0pKX1y KGkpfXZhciBuPWUubGVuZ3RoO3QoMCl9ZnVuY3Rpb24gcihlLHIsYSkNCg0Ke2Z1bmN0aW9u IGkoKXt2YXIgZT0hIXUubWV0aG9kLG89ZT91Lm1ldGhvZDphWzBdLGk9dS5leHRyYUFyZ3N8 fFtdLHM9bi4NCg0KJFdlYldhdHNvbjt0cnl7DQp2YXIgYz10KGEsIWUpO2lmKGkmJmkubGVu Z3RoPjApe2Zvcih2YXIgZD1pLmxlbmd0aCxsPTA7bDxkO2wrKyl7Yy5wdXNoKGkNCg0KW2xd KX19by5hcHBseShyLGMpfWNhdGNoKGUpe3JldHVybiB2b2lkDQoNCihzJiZzLnN1Ym1pdEZy b21FeGNlcHRpb24mJnMuc3VibWl0RnJvbUV4Y2VwdGlvbihlKSl9fXZhciB1PW8uciYmby5y DQoNCltlXTtyZXR1cm4gcj1yfHx0aGlzLHUmJih1LnNraXBUaW1lb3V0P2koKTpuLnNldFRp bWVvdXQoaSwwKSksdX1mdW5jdGlvbiANCg0KdChlLHIpe3JldHVybiBBcnJheS5wcm90b3R5 cGUuc2xpY2UuY2FsbChlLHI/MTowKX12YXIgbj13aW5kb3c7bi4kRG98fChuLg0KDQokRG89 eyJxIjpbXSwiciI6W10sInJlbW92ZUl0ZW1zIjpbXSwibG9jayI6MCwibyI6W119KTt2YXIg bz1uLg0KDQokRG87by53aGVuPWZ1bmN0aW9uKHQsbil7ZnVuY3Rpb24gYShlKXtyKGUsaSx1 KXx8by5xLnB1c2gNCg0KKHsiaWQiOmUsImMiOmksImEiOnV9KX12YXIgaT0wLHU9W10scz0x OyJmdW5jdGlvbiI9PXR5cGVvZiBufHwoaT1uLA0Kcz0yKTtmb3IodmFyIGM9cztjPGFyZ3Vt ZW50cy5sZW5ndGg7YysrKXt1LnB1c2goYXJndW1lbnRzW2NdKX10IGluc3RhbmNlb2YgDQoN CkFycmF5P2UodCxhKTphKHQpfSxvLnJlZ2lzdGVyPWZ1bmN0aW9uKGUsdCxuKXtpZighby5y W2VdKXtvLm8ucHVzaChlKTt2YXIgDQoNCmE9e307aWYodCYmKGEubWV0aG9kPXQpLG4mJg0K DQooYS5za2lwVGltZW91dD1uKSxhcmd1bWVudHMmJmFyZ3VtZW50cy5sZW5ndGg+Myl7YS5l eHRyYUFyZ3M9W107Zm9yKHZhciANCg0KaT0zO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe2Eu ZXh0cmFBcmdzLnB1c2goYXJndW1lbnRzW2ldKX19by5yW2VdDQoNCj1hLG8ubG9jaysrO3Ry eXtmb3IodmFyIHU9MDt1PG8ucS5sZW5ndGg7dSsrKXt2YXIgcz1vLnFbdV07cy5pZD09ZSYm cg0KDQooZSxzLmMscy5hKSYmby5yZW1vdmVJdGVtcy5wdXNoKHMpfX1jYXRjaChlKXt0aHJv dyBlfWZpbmFsbHl7aWYoMD09PS0tDQoNCm8ubG9jayl7Zm9yKHZhciBjPTA7YzxvLnJlbW92 ZUl0ZW1zLmxlbmd0aDtjKyspew0KZm9yKHZhciBkPW8ucmVtb3ZlSXRlbXNbY10sbD0wO2w8 by5xLmxlbmd0aDtsKyspe2lmKG8ucVtsXT09PWQpDQoNCntvLnEuc3BsaWNlKGwsMSk7YnJl YWt9fX1vLnJlbW92ZUl0ZW1zPVtdfX19fSxvLnVucmVnaXN0ZXI9ZnVuY3Rpb24oZSkNCg0K e28ucltlXSYmZGVsZXRlIG8ucltlXX19KCksZnVuY3Rpb24oZSxyKXtmdW5jdGlvbiB0KCl7 aWYoIWkpe2lmKCFyLmJvZHkpDQoNCntyZXR1cm4gdm9pZCBzZXRUaW1lb3V0KHQpfWk9ITAs ZS4kRG8ucmVnaXN0ZXIoImRvYy5yZWFkeSIsMCwhMCl9fWZ1bmN0aW9uIA0KDQpuKCl7aWYo IXUpe2lmKCFyLmJvZHkpe3JldHVybiB2b2lkIHNldFRpbWVvdXQobil9dCgpLHU9ITAsZS4k RG8ucmVnaXN0ZXINCg0KKCJkb2MubG9hZCIsMCwhMCksYSgpfX1mdW5jdGlvbiBvKGUpDQoN Cnsoci5hZGRFdmVudExpc3RlbmVyfHwibG9hZCI9PT1lLnR5cGV8fCJjb21wbGV0ZSI9PT1y LnJlYWR5U3RhdGUpJiZ0KCl9DQoNCmZ1bmN0aW9uIGEoKXsNCnIuYWRkRXZlbnRMaXN0ZW5l cj8oci5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixvLCENCg0KMSks ZS5yZW1vdmVFdmVudExpc3RlbmVyKCJsb2FkIixuLCExKSk6ci5hdHRhY2hFdmVudCYmKHIu ZGV0YWNoRXZlbnQNCg0KKCJvbnJlYWR5c3RhdGVjaGFuZ2UiLG8pLGUuZGV0YWNoRXZlbnQo Im9ubG9hZCIsbikpfXZhciBpPSExLHU9ITE7aWYNCg0KKCJjb21wbGV0ZSI9PT1yLnJlYWR5 U3RhdGUpe3JldHVybiB2b2lkIHNldFRpbWVvdXQobil9IWZ1bmN0aW9uKCkNCg0Ke3IuYWRk RXZlbnRMaXN0ZW5lcj8oci5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixv LCENCg0KMSksZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixuLCExKSk6ci5hdHRhY2hFdmVu dCYmKHIuYXR0YWNoRXZlbnQNCg0KKCJvbnJlYWR5c3RhdGVjaGFuZ2UiLG8pLGUuYXR0YWNo RXZlbnQoIm9ubG9hZCIsbikpfSgpfQ0KDQood2luZG93LGRvY3VtZW50KSxmdW5jdGlvbigp e2Z1bmN0aW9uIGUoKXsNCnJldHVybiBmLiRDb25maWd8fGYuU2VydmVyRGF0YXx8e319ZnVu Y3Rpb24gcihlLHIpe3ZhciB0PWYuDQoNCiREZWJ1Zzt0JiZ0LmFwcGVuZExvZyYmKHImJihl Kz0iICciKyhyLnNyY3x8ci5ocmVmfHwiIikrIiciLGUrPSIsIA0KDQppZDoiKyhyLmlkfHwi IiksZSs9IiwgYXN5bmM6Iisoci5hc3luY3x8IiIpLGUrPSIsIA0KDQpkZWZlcjoiKyhyLmRl ZmVyfHwiIikpLHQuYXBwZW5kTG9nKGUpKX1mdW5jdGlvbiB0KCl7dmFyIGU9Zi4kQjtpZih2 b2lkIA0KDQowPT09ZCl7aWYoZSl7ZD1lLklFfWVsc2V7dmFyIHI9Zi5uYXZpZ2F0b3IudXNl ckFnZW50O2Q9LTEhPT1yLmluZGV4T2YNCg0KKCJNU0lFICIpfHwtMSE9PXIuaW5kZXhPZigi VHJpZGVudC8iKX19cmV0dXJuIGR9ZnVuY3Rpb24gbigpe3ZhciBlPWYuDQoNCiRCO2lmKHZv aWQgMD09PWwpe2lmKGUpe2w9ZS5SRV9FZGdlfWVsc2V7dmFyIHI9Zi5uYXZpZ2F0b3IudXNl ckFnZW50O2w9LQ0KDQoxIT09ci5pbmRleE9mKCJFZGdlIil9fXJldHVybiBsfWZ1bmN0aW9u IG8oZSl7DQp2YXIgcj1lLmluZGV4T2YoIj8iKSx0PXI+LTE/cjplLmxlbmd0aCxuPWUubGFz dEluZGV4T2YoIi4iLHQpO3JldHVybiANCg0KZS5zdWJzdHJpbmcobixuK3YubGVuZ3RoKS50 b0xvd2VyQ2FzZSgpPT09dn1mdW5jdGlvbiBhKCl7dmFyIHI9ZSgpO3JldHVybg0KDQooci5s b2FkZXJ8fHt9KS5zbFJlcG9ydEZhaWx1cmV8fHIuc2xSZXBvcnRGYWlsdXJlfHwhMX1mdW5j dGlvbiBpKCl7cmV0dXJuDQoNCihlKCkubG9hZGVyfHx7fSkucmVkaXJlY3RUb0Vycm9yUGFn ZU9uTG9hZEZhaWx1cmV8fCExfWZ1bmN0aW9uIHUoKXtyZXR1cm4NCg0KKGUoKS5sb2FkZXJ8 fHt9KS5sb2dCeVRocm93aW5nfHwhMX1mdW5jdGlvbiBzKGUpe2lmKCF0KCkmJiFuKCkpe3Jl dHVybiExfQ0KDQp2YXIgcj1lLnNyY3x8ZS5ocmVmfHwiIjtpZighcil7cmV0dXJuITB9aWYo byhyKSl7dmFyIGEsaSx1O3RyeQ0KDQp7YT1lLnNoZWV0LGk9YSYmYS5jc3NSdWxlcyx1PSEx fWNhdGNoKGUpe3U9ITB9aWYoYSYmIWkmJnUpe3JldHVybiEwfQ0KaWYoYSYmaSYmMD09PWku bGVuZ3RoKXtyZXR1cm4hMH19cmV0dXJuITF9ZnVuY3Rpb24gYygpe2Z1bmN0aW9uIHQoZSkN Cg0Ke2cuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChlKX1m dW5jdGlvbiBuKGUscix0LG4pe3ZhciANCg0Kcz1udWxsO3JldHVybiBzPW8oZSk/YShlKToi c2NyaXB0Ij09PW4udG9Mb3dlckNhc2UoKT9pKGUpOnUoZSxuKSxyJiYNCg0KKHMuaWQ9ciks ImZ1bmN0aW9uIj09dHlwZW9mIHMuc2V0QXR0cmlidXRlJiYocy5zZXRBdHRyaWJ1dGUNCg0K KCJjcm9zc29yaWdpbiIsImFub255bW91cyIpLHQmJiJzdHJpbmciPT10eXBlb2YgdCYmcy5z ZXRBdHRyaWJ1dGUNCg0KKCJpbnRlZ3JpdHkiLHQpKSxzfWZ1bmN0aW9uIGEoZSl7dmFyIHI9 Zy5jcmVhdGVFbGVtZW50KCJsaW5rIik7cmV0dXJuIA0KDQpyLnJlbD0ic3R5bGVzaGVldCIs ci50eXBlPSJ0ZXh0L2NzcyIsci5ocmVmPWUscn1mdW5jdGlvbiBpKGUpe3ZhciANCg0Kcj1n LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpDQo7cmV0dXJuIHIudHlwZT0idGV4dC9qYXZhc2Ny aXB0IixyLnNyYz1lLHIuZGVmZXI9ITEsci5hc3luYz0hMSxyfWZ1bmN0aW9uIA0KDQp1KGUs cil7dmFyIHQ9Zy5jcmVhdGVFbGVtZW50KHIpO3JldHVybiB0LnNyYz1lLHR9ZnVuY3Rpb24g ZChlKXtpZighDQoNCihtJiZtLmxlbmd0aD4xKSl7cmV0dXJuIGV9Zm9yKHZhciByPTA7cjxt Lmxlbmd0aDtyKyspe2lmKDA9PT1lLmluZGV4T2YobQ0KDQpbcl0pKXtyZXR1cm4gbVtyKzE8 bS5sZW5ndGg/cisxOjBdK2Uuc3Vic3RyaW5nKG1bcl0ubGVuZ3RoKX19cmV0dXJuIGV9DQoN CmZ1bmN0aW9uIGwoZSx0LG4sbyl7aWYocigiWyRMb2FkZXJdOiAiKyhiLmZhaWxNZXNzYWdl fHwiRmFpbGVkIiksbyksDQoNCiRbZV0ucmV0cnk8cCl7cmV0dXJuICRbZV0ucmV0cnkrKyx2 KGUsdCxuKSx2b2lkIGMuX1JlcG9ydEZhaWx1cmUNCg0KKCRbZV0ucmV0cnksJFtlXS5zcmNQ YXRoKX1uJiZuKCl9ZnVuY3Rpb24gZihlLHQsbixvKXtpZihzKG8pKXtyZXR1cm4gbA0KDQoo ZSx0LG4sbyl9DQpyKCJbJExvYWRlcl06ICIrKGIuc3VjY2Vzc01lc3NhZ2V8fCJMb2FkZWQi KSxvKSx2KGUrMSx0LG4pO3ZhciBhPQ0KDQokW2VdLm9uU3VjY2VzczsiZnVuY3Rpb24iPT10 eXBlb2YgYSYmYSgkW2VdLnNyY1BhdGgpfWZ1bmN0aW9uIHYoZSxvLGEpe2lmDQoNCihlPCQu bGVuZ3RoKXt2YXIgaT0kW2VdO2lmKCFpfHwhaS5zcmNQYXRoKXtyZXR1cm4gdm9pZCB2KGUr MSxvLGEpfQ0KDQppLnJldHJ5PjAmJihpLnNyY1BhdGg9ZChpLnNyY1BhdGgpLGkub3JpZ0lk fHwNCg0KKGkub3JpZ0lkPWkuaWQpLGkuaWQ9aS5vcmlnSWQrIl9SZXRyeV8iK2kucmV0cnkp O3ZhciB1PW4NCg0KKGkuc3JjUGF0aCxpLmlkLGkuaW50ZWdyaXR5LGkudGFnTmFtZSk7dS5v bmxvYWQ9ZnVuY3Rpb24oKXtmDQoNCihlLG8sYSx1KX0sdS5vbmVycm9yPWZ1bmN0aW9uKCl7 bChlLG8sYSx1KX0sdS5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24NCg0KKCl7ImxvYWRl ZCI9PT11LnJlYWR5U3RhdGU/c2V0VGltZW91dChmdW5jdGlvbigpe2YoZSxvLGEsdSkNCn0s NTAwKToiY29tcGxldGUiPT09dS5yZWFkeVN0YXRlJiZmKGUsbyxhLHUpfSx0KHUpLHIoIlsk TG9hZGVyXTogTG9hZGluZyANCg0KJyIrKGkuc3JjUGF0aHx8IiIpKyInLCBpZDoiKyhpLmlk fHwiIikpfWVsc2V7byYmbygpfX12YXIgaD1lDQoNCigpLHA9aC5zbE1heFJldHJ5fHwyLHk9 aC5sb2FkZXJ8fHt9LG09eS5jZG5Sb290c3x8W10sYj10aGlzLCQ9DQoNCltdO2IucmV0cnlP bkVycm9yPSENCg0KMCxiLnN1Y2Nlc3NNZXNzYWdlPSJMb2FkZWQiLGIuZmFpbE1lc3NhZ2U9 IkVycm9yIixiLkFkZD1mdW5jdGlvbg0KDQooZSxyLHQsbixvLGEpe2UmJiQucHVzaCh7InNy Y1BhdGgiOmUsImlkIjpyLCJyZXRyeSI6bnx8DQoNCjAsImludGVncml0eSI6dCwidGFnTmFt ZSI6b3x8InNjcmlwdCIsIm9uU3VjY2VzcyI6YX0pfSxiLkFkZEZvclJlbG9hZD1mdW5jDQoN CnRpb24oZSxyKXt2YXIgdD1lLnNyY3x8ZS5ocmVmfHwiIjtiLkFkZA0KDQoodCwiQWRkRm9y UmVsb2FkIixlLmludGVncml0eSwxLGUudGFnTmFtZSxyKX0sDQpiLkFkZElmPWZ1bmN0aW9u KGUscix0KXtlJiZiLkFkZChyLHQpfSxiLkxvYWQ9ZnVuY3Rpb24oZSxyKXt2KDAsZSxyKX19 dmFyIA0KDQpkLGwsZj13aW5kb3csZz1mLmRvY3VtZW50LHY9Ii5jc3MiO2MuT249ZnVuY3Rp b24oZSxyLHQpe2lmKCFlKXt0aHJvdyJUaGUgDQoNCnRhcmdldCBlbGVtZW50IG11c3QgYmUg cHJvdmlkZWQgYW5kIGNhbm5vdCBiZSBudWxsLiJ9cj9jLk9uRXJyb3INCg0KKGUsdCk6Yy5P blN1Y2Nlc3MoZSx0KX0sYy5PblN1Y2Nlc3M9ZnVuY3Rpb24oZSx0KXtpZighZSl7dGhyb3ci VGhlIHRhcmdldCANCg0KZWxlbWVudCBtdXN0IGJlIHByb3ZpZGVkIGFuZCBjYW5ub3QgYmUg bnVsbC4ifWlmKHMoZSkpe3JldHVybiBjLk9uRXJyb3INCg0KKGUsdCl9dmFyIG49ZS5zcmN8 fGUuaHJlZnx8IiIsbz1hKCksdT1pKCk7cigiWyRMb2FkZXJdOiBMb2FkZWQiLGUpO3ZhciAN Cg0KZD1uZXcgYztkLmZhaWxNZXNzYWdlPSJSZWxvYWQgRmFpbGVkIixkLnN1Y2Nlc3NNZXNz YWdlPSJSZWxvYWQgU3VjY2VzcyIsDQpkLkxvYWQobnVsbCxmdW5jdGlvbigpe2lmKG8pe3Ro cm93IlVuZXhwZWN0ZWQgc3RhdGUuIFJlc291cmNlTG9hZGVyLkxvYWQoKSANCg0KZmFpbGVk IGRlc3BpdGUgaW5pdGlhbCBsb2FkIHN1Y2Nlc3MuIFsnIituKyInXSJ9dSYmDQoNCihkb2N1 bWVudC5sb2NhdGlvbi5ocmVmPSIvZXJyb3IuYXNweD9lcnI9NTA0Iil9KX0sYy5PbkVycm9y PWZ1bmN0aW9uKGUsdCkNCg0Ke3ZhciBuPWUuc3JjfHxlLmhyZWZ8fCIiLG89YSgpLHU9aSgp O2lmKCFlKXt0aHJvdyJUaGUgdGFyZ2V0IGVsZW1lbnQgbXVzdCANCg0KYmUgcHJvdmlkZWQg YW5kIGNhbm5vdCBiZSBudWxsLiJ9cigiWyRMb2FkZXJdOiBGYWlsZWQiLGUpO3ZhciBzPW5l dyANCg0KYztzLmZhaWxNZXNzYWdlPSJSZWxvYWQgRmFpbGVkIixzLnN1Y2Nlc3NNZXNzYWdl PSJSZWxvYWQgDQoNClN1Y2Nlc3MiLHMuQWRkRm9yUmVsb2FkKGUsdCkscy5Mb2FkKG51bGws ZnVuY3Rpb24oKXtpZihvKXt0aHJvdyJGYWlsZWQgdG8gDQoNCmxvYWQgZXh0ZXJuYWwgcmVz b3VyY2UgWyciK24rIiddIn0NCnUmJihkb2N1bWVudC5sb2NhdGlvbi5ocmVmPSIvZXJyb3Iu YXNweD9lcnI9NTA0Iil9KSxjLl9SZXBvcnRGYWlsdXJlDQoNCigwLG4pfSxjLl9SZXBvcnRG YWlsdXJlPWZ1bmN0aW9uKGUscil7aWYodSgpJiYhdCgpKXt0aHJvdyJbUmV0cnkgIitlKyJd IA0KDQpGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCByZXNvdXJjZSBbJyIrcisiJ10sIHJlbG9h ZGluZyBmcm9tIGZhbGxiYWNrIENETiANCg0KZW5kcG9pbnQifX0sZi4kTG9hZGVyPWN9KCks ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7aWYoISQpe3ZhciBlPW5ldyBoLg0KDQokTG9hZGVy O2UuQWRkSWYoIQ0KDQpoLmpRdWVyeSx5LnNidW5kbGUsIldlYldhdHNvbl9EZW1hbmRTdXBw b3J0IikseS5zYnVuZGxlPW51bGwsZGVsZXRlIA0KDQp5LnNidW5kbGUsZS5BZGRJZighaC4N Cg0KJEFwaSx5LmZidW5kbGUsIldlYldhdHNvbl9EZW1hbmRGcmFtZXdvcmsiKSx5LmZidW5k bGU9bnVsbCxkZWxldGUgDQoNCnkuZmJ1bmRsZSxlLkFkZCh5LmJ1bmRsZSwiV2ViV2F0c29u X0RlbWFuZExvYWRlZCIpLA0KZS5Mb2FkKHIsdCksJD0hMH19ZnVuY3Rpb24gcigpe2lmKGgu JFdlYldhdHNvbil7aWYoaC4kV2ViV2F0c29uLmlzUHJveHkpDQoNCntyZXR1cm4gdm9pZCB0 KCl9bS53aGVuKCIkV2ViV2F0c29uLmZ1bGwiLGZ1bmN0aW9uKCl7Zm9yKDtiLmxlbmd0aD4w Oyl7dmFyIA0KDQplPWIuc2hpZnQoKTtlJiZoLiRXZWJXYXRzb25bZS5jbWROYW1lXS5hcHBs eShoLiRXZWJXYXRzb24sZS5hcmdzKX19KX19DQoNCmZ1bmN0aW9uIHQoKXtpZighaC4kV2Vi V2F0c29ufHxoLiRXZWJXYXRzb24uaXNQcm94eSl7aWYoIXcmJkpTT04pe3RyeXt2YXIgDQoN CmU9bmV3IFhNTEh0dHBSZXF1ZXN0O2Uub3BlbigiUE9TVCIseS51cmwpLGUuc2V0UmVxdWVz dEhlYWRlcg0KDQooIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24iKSxlLnNldFJlcXVlc3RI ZWFkZXIoIkNvbnRlbnQtDQoNClR5cGUiLCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PVVU Ri04IiksZS5zZXRSZXF1ZXN0SGVhZGVyDQoNCigiY2FuYXJ5IixwLmFwaUNhbmFyeSksDQpl LnNldFJlcXVlc3RIZWFkZXIoImNsaWVudC1yZXF1ZXN0LQ0KDQppZCIscC5jb3JyZWxhdGlv bklkKSxlLnNldFJlcXVlc3RIZWFkZXIoImhwZ2lkIixwLmhwZ2lkfHwNCg0KMCksZS5zZXRS ZXF1ZXN0SGVhZGVyKCJocGdhY3QiLHAuaHBnYWN0fHwwKTtmb3IodmFyIHI9LTEsdD0wO3Q8 Yi5sZW5ndGg7dA0KDQorKyl7aWYoInN1Ym1pdCI9PT1iW3RdLmNtZE5hbWUpe3I9dDticmVh a319dmFyIG89YltyXT9iW3JdLmFyZ3N8fFtdOltdLGE9DQoNCnsic3IiOnkuc3IsImVjIjoi RmFpbGVkIHRvIGxvYWQgZXh0ZXJuYWwgcmVzb3VyY2UgW0NvcmUgV2F0c29uIA0KDQpmaWxl c10iLCJ3ZWMiOjU1LCJpZHgiOjEsInBuIjpwLnBnaWR8fCIiLCJzYyI6cC5zY2lkfHwwLCJo cGciOnAuaHBnaWR8fA0KDQowLCJtc2ciOiJGYWlsZWQgdG8gbG9hZCBleHRlcm5hbCByZXNv dXJjZSBbQ29yZSBXYXRzb24gZmlsZXNdIiwidXJsIjpvDQoNClsxXXx8IiIsImxuIjowLCJh ZCI6MCwiYW4iOiExLCJjcyI6IiIsInNkIjpwLnNlcnZlckRldGFpbHMsImxzIjpudWxsLA0K ImRpYWciOnYoeSl9O2Uuc2VuZChKU09OLnN0cmluZ2lmeShhKSl9Y2F0Y2goZSl7fXc9ITB9 DQoNCnkubG9hZEVycm9yVXJsJiZ3aW5kb3cubG9jYXRpb24uYXNzaWduKHkubG9hZEVycm9y VXJsKX1uKCl9ZnVuY3Rpb24gbigpDQoNCntiPVtdLGguJFdlYldhdHNvbj1udWxsfWZ1bmN0 aW9uIG8ocil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIA0KDQp0PWFyZ3VtZW50cztiLnB1c2go eyJjbWROYW1lIjpyLCJhcmdzIjp0fSksZSgpfX1mdW5jdGlvbiBhKCl7dmFyIGU9DQoNClsi Zm91bmRFeGNlcHRpb24iLCJyZXNldEV4Y2VwdGlvbiIsInN1Ym1pdCJdLHI9dGhpcztyLmlz UHJveHk9ITA7Zm9yKHZhciANCg0KdD1lLmxlbmd0aCxuPTA7bjx0O24rKyl7dmFyIGE9ZVtu XTthJiYoclthXT1vKGEpKX19ZnVuY3Rpb24gaQ0KDQooZSxyLHQsbixvLGEsaSl7dmFyIHU9 aC5ldmVudDtyZXR1cm4gYXx8KGE9bChvfHx1LGk/aSsyOjIpKSwNCmguJERlYnVnJiZoLiRE ZWJ1Zy5hcHBlbmRMb2cmJmguJERlYnVnLmFwcGVuZExvZygiW1dlYldhdHNvbl06IisoZXx8 IiIpKyIgDQoNCmluICIrKHJ8fCIiKSsiIEAgIisodHx8Ij8/IikpLEUuc3VibWl0KGUscix0 LG4sb3x8dSxhLGkpfWZ1bmN0aW9uIHUoZSxyKQ0KDQp7cmV0dXJueyJzaWduYXR1cmUiOmUs ImFyZ3MiOnIsInRvU3RyaW5nIjpmdW5jdGlvbigpe3JldHVybiANCg0KdGhpcy5zaWduYXR1 cmV9fX1mdW5jdGlvbiBzKGUpe2Zvcih2YXIgcj1bXSx0PWUuc3BsaXQNCg0KKCJcbiIpLG49 MDtuPHQubGVuZ3RoO24rKyl7ci5wdXNoKHUodFtuXSxbXSkpfXJldHVybiByfWZ1bmN0aW9u IGMoZSl7Zm9yDQoNCih2YXIgcj1bXSx0PWUuc3BsaXQoIlxuIiksbj0wO248dC5sZW5ndGg7 bisrKXt2YXIgbz11KHRbbl0sW10pO3RbbisxXSYmDQoNCihvLnNpZ25hdHVyZSs9IkAiK3Rb bisxXSxuKyspLHIucHVzaChvKX1yZXR1cm4gcn1mdW5jdGlvbiBkKGUpe2lmKCFlKQ0KDQp7 cmV0dXJuIG51bGx9dHJ5e2lmKGUuc3RhY2spew0KcmV0dXJuIHMoZS5zdGFjayl9aWYoZS5l cnJvcil7aWYoZS5lcnJvci5zdGFjayl7cmV0dXJuIHMoZS5lcnJvci5zdGFjayl9fQ0KDQpl bHNlIGlmKHdpbmRvdy5vcGVyYSYmZS5tZXNzYWdlKXtyZXR1cm4gYyhlLm1lc3NhZ2UpfX1j YXRjaChlKXt9cmV0dXJuIA0KDQpudWxsfWZ1bmN0aW9uIGwoZSxyKXt2YXIgdD1bXTt0cnl7 Zm9yKHZhciBuPWFyZ3VtZW50cy5jYWxsZWU7cj4wOyl7bj1uPw0KDQpuLmNhbGxlcjpuLHIt LX1mb3IodmFyIG89MDtuJiZvPEw7KXt2YXIgYT0iSW52YWxpZE1ldGhvZCgpIjt0cnkNCg0K e2E9bi50b1N0cmluZygpfWNhdGNoKGUpe312YXIgaT1bXSxzPW4uYXJnc3x8bi5hcmd1bWVu dHM7aWYocyl7Zm9yKHZhciANCg0KYz0wO2M8cy5sZW5ndGg7YysrKXtpW2NdPXNbY119fXQu cHVzaCh1KGEsaSkpLG49bi5jYWxsZXIsbysrfX1jYXRjaChlKQ0KDQp7dC5wdXNoKHUoZS50 b1N0cmluZygpLFtdKSl9dmFyIGw9ZChlKQ0KO3JldHVybiBsJiYodC5wdXNoKHUoIi0tLSBF cnJvciBFdmVudCBTdGFjayAtLS0tLS0tLS0tLS0tLS0tLSIsDQoNCltdKSksdD10LmNvbmNh dChsKSksdH1mdW5jdGlvbiBmKGUpe2lmKGUpe3RyeXt2YXIgcj0vZnVuY3Rpb24gKC4NCg0K ezEsfSlcKC8sdD1yLmV4ZWMoZS5jb25zdHJ1Y3Rvci50b1N0cmluZygpKTtyZXR1cm4gdCYm dC5sZW5ndGg+MT90WzFdOiIifQ0KDQpjYXRjaChlKXt9fXJldHVybiIifWZ1bmN0aW9uIGco ZSl7aWYoZSl7dHJ5e2lmKCJzdHJpbmciIT10eXBlb2YgDQoNCmUmJkpTT04mJkpTT04uc3Ry aW5naWZ5KXt2YXIgcj1mKGUpLHQ9SlNPTi5zdHJpbmdpZnkoZSk7cmV0dXJuIHQmJiJ7fSIh DQoNCj09dHx8KGUuZXJyb3ImJihlPWUuZXJyb3Iscj1mKGUpKSwodD1KU09OLnN0cmluZ2lm eShlKSkmJiJ7fSIhPT10fHwNCg0KKHQ9ZS50b1N0cmluZygpKSkscisiOiIrdH19Y2F0Y2go ZSl7fX1yZXR1cm4iIisoZXx8IiIpfWZ1bmN0aW9uIHYoZSl7dmFyIA0KDQpyPVtdO3RyeXsN CmlmKGpRdWVyeT8oci5wdXNoKCJqUXVlcnkgdjoiK2pRdWVyeSgpLmpxdWVyeSksalF1ZXJ5 LmVhc2luZz9yLnB1c2gNCg0KKCJqUXVlcnkuZWFzaW5nOiIrSlNPTi5zdHJpbmdpZnkoalF1 ZXJ5LmVhc2luZykpOnIucHVzaCgialF1ZXJ5LmVhc2luZyBpcyANCg0Kbm90IGRlZmluZWQi KSk6ci5wdXNoKCJqUXVlcnkgaXMgbm90IA0KDQpkZWZpbmVkIiksZSYmZS5leHBlY3RlZFZl cnNpb24mJnIucHVzaCgiRXhwZWN0ZWQgalF1ZXJ5IA0KDQp2OiIrZS5leHBlY3RlZFZlcnNp b24pLG0pe3ZhciB0LG49IiI7Zm9yKHQ9MDt0PG0uby5sZW5ndGg7dCsrKXtuKz1tLm8NCg0K W3RdKyI7In1mb3Ioci5wdXNoKCIkRG8ub1siK24rIl0iKSxuPSIiLHQ9MDt0PG0ucS5sZW5n dGg7dCsrKXtuKz1tLnENCg0KW3RdLmlkKyI7In1yLnB1c2goIiREby5xWyIrbisiXSIpfWlm KGguJERlYnVnJiZoLiREZWJ1Zy5nZXRMb2dzKXt2YXIgbz1oLg0KDQokRGVidWcuZ2V0TG9n cygpO28mJm8ubGVuZ3RoPjAmJihyPXIuY29uY2F0KG8pKX1pZihiKXsNCmZvcih2YXIgYT0w O2E8Yi5sZW5ndGg7YSsrKXt2YXIgaT1iW2FdO2lmKGkmJiJzdWJtaXQiPT09aS5jbWROYW1l KXt0cnl7aWYNCg0KKEpTT04mJkpTT04uc3RyaW5naWZ5KXt2YXIgdT1KU09OLnN0cmluZ2lm eShpKTt1JiZyLnB1c2godSl9fWNhdGNoKGUpDQoNCntyLnB1c2goZyhlKSl9fX19fWNhdGNo KGUpe3IucHVzaChnKGUpKX1yZXR1cm4gcn12YXIgaD13aW5kb3cscD1oLg0KDQokQ29uZmln fHx7fSx5PXAud2F0c29uLG09aC4kRG87aWYoIWguJFdlYldhdHNvbiYmeSl7dmFyIGI9W10s JD0hMSx3PSENCg0KMSxMPTEwLEU9aC4kV2ViV2F0c29uPW5ldyBhO0UuQ0I9DQoNCnt9LEUu X29yZ0Vycm9ySGFuZGxlcj1oLm9uZXJyb3IsaC5vbmVycm9yPWksRS5lcnJvckhvb2tlZD0h MCxtLndoZW4NCg0KKCJqUXVlcnkudmVyc2lvbiIsZnVuY3Rpb24oZSl7eS5leHBlY3RlZFZl cnNpb249ZX0pLG0ucmVnaXN0ZXINCg0KKCIkV2ViV2F0c29uIil9fSgpLGZ1bmN0aW9uKCl7 ZnVuY3Rpb24gZShlLHIpew0KZm9yKHZhciB0PXIuc3BsaXQoIi4iKSxuPXQubGVuZ3RoLG89 MDtvPG4mJm51bGwhPT1lJiZ2b2lkIDAhPT1lOyl7ZT1lW3Rbbw0KDQorK11dfXJldHVybiBl fWZ1bmN0aW9uIHIocil7dmFyIHQ9bnVsbDtyZXR1cm4gbnVsbD09PXMmJihzPWUNCg0KKGEs IkNvbnN0YW50cyIpKSxudWxsIT09cyYmciYmKHQ9ZShzLHIpKSxudWxsPT09dHx8dm9pZCAN Cg0KMD09PXQ/IiI6dC50b1N0cmluZygpfWZ1bmN0aW9uIHQodCl7dmFyIG49bnVsbDtyZXR1 cm4gbnVsbD09PWkmJihpPWUNCg0KKGEsIiRDb25maWcuc3RyaW5ncyIpKSxudWxsIT09aSYm dCYmKG49ZShpLHQudG9Mb3dlckNhc2UoKSkpLG51bGwhDQoNCj09biYmdm9pZCAwIT09bnx8 KG49cih0KSksbnVsbD09PW58fHZvaWQgMD09PW4/IiI6bi50b1N0cmluZygpfWZ1bmN0aW9u IG4NCg0KKGUscil7dmFyIG49bnVsbDtyZXR1cm4gZSYmciYmcltlXSYmKG49dCgiZXJyb3Jz LiIrcltlXSkpLG58fChuPXQNCg0KKCJlcnJvcnMuIitlKSksbnx8KG49dCgiZXJyb3JzLiIr YykpLG58fChuPXQoYykpLG59DQpmdW5jdGlvbiBvKHQpe3ZhciBuPW51bGw7cmV0dXJuIG51 bGw9PT11JiYodT1lKGEsIiRDb25maWcudXJscyIpKSxudWxsIQ0KDQo9PXUmJnQmJihuPWUo dSx0LnRvTG93ZXJDYXNlKCkpKSxudWxsIT09biYmdm9pZCAwIT09bnx8KG49cg0KDQoodCkp LG51bGw9PT1ufHx2b2lkIDA9PT1uPyIiOm4udG9TdHJpbmcoKX12YXIgDQoNCmE9d2luZG93 LGk9bnVsbCx1PW51bGwscz1udWxsLGM9IkdFTkVSSUNfRVJST1IiO2EuR2V0U3RyaW5nPXQs YS5HZXRFcnJvclN0DQoNCnJpbmc9bixhLkdldFVybD1vfSgpLGZ1bmN0aW9uKCl7dmFyIGU9 d2luZG93LHI9ZS4kQ29uZmlnfHx7fTtlLg0KDQokQj1yLmJyb3dzZXJ8fHt9fSgpOw0KDQov L11dPjwvc2NyaXB0Pg0KCTxsaW5rIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIA0KDQpocmVm PSJodHRwczovL2FhZGNkbi5tc2Z0YXV0aC5uZXQvZXN0cy8yLjEvY29udGVudC9jZG5idW5k bGVzL2NvbnZlcmdlZC52Mg0KDQoubG9naW4ubWluXzU5X3V1b3VzZXI3aHJrbXZiYXoxancy LmNzcyIgaW50ZWdyaXR5PSJzaGEzODQtDQoNCllEMU1vMDY0Z1FjY0VVTEhuSDJ4aUk3SnBJ R0RQVG9ESkxxNFZFT2dGQTV4ckFNcHBMT054NHJEL3JrdGx2bE4iIA0KDQpvbmVycm9yPSIk TG9hZGVyLk9uKHRoaXMsdHJ1ZSkiIG9ubG9hZD0iJExvYWRlci5Pbih0aGlzKSIgcmVsPSJz dHlsZXNoZWV0IiANCg0KLz48c2NyaXB0IGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIA0KDQpz cmM9Imh0dHBzOi8vYWFkY2RuLm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2NkbmJ1 bmRsZXMvanF1ZXJ5LjEuMTEubQ0KDQppbl9feW9rX2Nod3NleXB3Ym11ZmZubmFhMi5qcyIg b25lcnJvcj0nJExvYWRlci5Pbih0aGlzLHRydWUpJyANCg0Kb25sb2FkPSckTG9hZGVyLk9u KHRoaXMpJyBpbnRlZ3JpdHk9J3NoYTM4NC0NCg0KSXRMdXVnV2tKcFFYdUtOOTR1WUxtWWRR NE1yQklCbUpkL1VkamxHQ1ZqQk9FSlpvTFZ3V25ZSUV3SUFCWFNReSc+PC9zY3JpcHQNCg0K PjxzY3JpcHQgY3Jvc3NvcmlnaW49ImFub255bW91cyIgDQoNCnNyYz0iaHR0cHM6Ly9hYWRj ZG4ubXNmdGF1dGgubmV0L2VzdHMvMi4xL2NvbnRlbnQvY2RuYnVuZGxlcy9hYWQubG9naW4u bWluDQoNCl95bnl3eWZla2Ztc3AzbGp1cDJlcHJhMi5qcyIgb25lcnJvcj0nJExvYWRlci5P bih0aGlzLHRydWUpJyANCg0Kb25sb2FkPSckTG9hZGVyLk9uKHRoaXMpJyBpbnRlZ3JpdHk9 J3NoYTM4NC0NCg0KRlJEYlBuVjl2WGhrRHBuY2VMSVV3S0FObGJIb3F3WXp2TWlxQnJmNlBB bVY1OE83M1VKUm5Mdkk3MkI4czdPYSc+PC9zY3JpcHQNCg0KPg0KCTx0aXRsZT5ESEwgRXhw cmVzcyAtIFRyYWNraW5nPC90aXRsZT4NCjwvaGVhZD4NCjxib2R5IGRhdGEtZ3ItZXh0LWlu c3RhbGxlZD0iIiBkYXRhLW5ldy1nci1jLXMtY2hlY2stbG9hZGVkPSIxNC45ODQuMCIgDQoN CmRhdGEtbmV3LWdyLWMtcy1sb2FkZWQ9IjE0Ljk4NC4wIj48c2NyaXB0IHR5cGU9InRleHQv amF2YXNjcmlwdCI+DQqgIKAgDQqgIKAgZnVuY3Rpb24gU2V0SW1hZ2VTdGF0dXMoaW1hZ2VJ bmRleCwgc3RhdHVzKQ0KoCCgIHsNCqAgoCCgIKAgDQqgIKAgoCCgIGlmIChpbWFnZVN0YXR1 c0FycmF5W2ltYWdlSW5kZXhdID09PSAwKQ0KoCCgIKAgoCB7DQqgIKAgoCCgIKAgoCANCqAg oCCgIKAgoCCgIGltYWdlU3RhdHVzQXJyYXlbaW1hZ2VJbmRleF0gPSBzdGF0dXM7DQqgIKAg oCCgIH0NCg0KoCCgIKAgoCBUcnlDb21wbGV0ZVNpZ25vdXQoKTsNCqAgoCB9DQoNCqAgoCBm dW5jdGlvbiBJbWFnZVRpbWVvdXQoKQ0KoCCgIHsNCqAgoCCgIKAgaW1hZ2VTdGF0dXNUaW1l b3V0ID0gdHJ1ZTsNCqAgoCCgIKAgVHJ5Q29tcGxldGVTaWdub3V0KCk7DQqgIKAgfQ0KDQqg IKAgZnVuY3Rpb24gSWZyYW1lVGltZW91dCgpDQqgIKAgew0KoCCgIKAgoCBpZnJhbWVTdGF0 dXNUaW1lb3V0ID0gdHJ1ZTsNCqAgoCCgIKAgVHJ5Q29tcGxldGVTaWdub3V0KCk7DQqgIKAg fQ0KDQqgIKAgZnVuY3Rpb24gTXNhVGltZW91dCgpDQqgIKAgew0KoCCgIKAgoCBtc2FTaWdu b3V0U3RhdHVzID0gMzsNCqAgoCCgIKAgVHJ5Q29tcGxldGVTaWdub3V0KCk7DQqgIKAgfQ0K DQqgIKAgDQqgIKAgZnVuY3Rpb24gVHJ5Q29tcGxldGVTaWdub3V0KCkNCqAgoCB7DQqgIKAg oCCgIHZhciBzaWdub3V0Q29tcGxldGUgPSB0cnVlOw0KDQoNCqAgoCCgIKAgoCCgIA0KoCCg IKAgoCCgIKAgaWYgKGlmcmFtZVN0YXR1c1RpbWVvdXQgIT09IHRydWUpDQqgIKAgoCCgIKAg oCB7DQqgIKAgoCCgIKAgoCCgIKAgc2lnbm91dENvbXBsZXRlID0gZmFsc2U7DQqgIKAgoCCg IKAgoCB9DQqgIKAgoCCgIKAgoCANCg0KDQqgIKAgoCCgIGlmIChzaWdub3V0Q29tcGxldGUp DQqgIKAgoCCgIHsNCqAgoCCgIKAgoCCgIENvbXBsZXRlU2lnbm91dCgpOw0KoCCgIKAgoCB9 DQqgIKAgfQ0KDQqgIKAgZnVuY3Rpb24gQ29tcGxldGVTaWdub3V0KCkNCqAgoCB7DQqgIKAg oCCgIHZhciBzdGF0dXNTdWNjZXNzID0gdHJ1ZTsNCg0KoCCgIKAgoCANCg0KoCCgIKAgoCCg IKAgQ29tcGxldGVTaWdub3V0UmVuZGVyKHN0YXR1c1N1Y2Nlc3MpOw0KoCCgIH0NCg0KoCCg IGZ1bmN0aW9uIENvbXBsZXRlU2lnbm91dFJlbmRlcihzaWdub3V0U3VjY2Vzc2Z1bCkNCqAg oCB7DQqgIKAgoCCgIHNpZ25vdXRTdWNjZXNzZnVsID0gc2lnbm91dFN1Y2Nlc3NmdWwgJiYg dHJ1ZTsNCg0KoCCgIKAgoCANCqAgoCCgIKAgoCCgIA0KoCCgIKAgoCCgIKAgDQqgIKAgoCCg IKAgoCBpZiAoIXNpZ25vdXRTdWNjZXNzZnVsKQ0KoCCgIKAgoCCgIKAgew0KoCCgIKAgoCCg IKAgoCCgIKAgoCANCqAgoCCgIKAgoCCgIKAgoCCgIKAgUmVuZGVyU2lnbm91dEZhaWx1cmUo KTsNCqAgoCCgIKAgoCCgIKAgoCCgIKAgDQqgIKAgoCCgIKAgoCB9DQqgIKAgoCCgIKAgoCBl bHNlDQqgIKAgoCCgIKAgoCB7DQqgIKAgoCCgIKAgoCCgIKAgUmVuZGVyU2lnbm91dFN1Y2Nl c3MoKTsNCg0KoCCgIKAgoCCgIKAgoCCgIA0KoCCgIKAgoCCgIKAgoCCgIHNldFRpbWVvdXQo J0luaXRpYXRvclJlZGlyZWN0KCknLCAxMDAwKTsNCqAgoCCgIKAgoCCgIH0NCqAgoCCgIKAg oCCgIA0KoCCgIH0NCg0KoCCgIGZ1bmN0aW9uIFJlbmRlclNpZ25vdXRTdWNjZXNzKCkNCqAg oCB7DQqgIKAgoCCgIKAgoCBVc2VyLlVwZGF0ZUxvZ28oJycsICJZb3Ugc2lnbmVkIG91dCBv ZiB5b3VyIGFjY291bnQiLCB0cnVlKTsNCg0KoCCgIKAgoCB2YXIgc2lnbm91dFN0YXR1c01l c3NhZ2UgPSAkKCcjU2lnbk91dFN0YXR1c01lc3NhZ2UnKTsNCqAgoCCgIKAgc2lnbm91dFN0 YXR1c01lc3NhZ2UudGV4dCgiSXRcdTAwMjdzIGEgZ29vZCBpZGVhIHRvIGNsb3NlIGFsbCAN Cg0KYnJvd3NlciB3aW5kb3dzLiIpOw0KoCCgIKAgoCBzaWdub3V0U3RhdHVzTWVzc2FnZS5z aG93KCk7DQqgIKAgfQ0KDQqgIKAgZnVuY3Rpb24gUmVuZGVyU2lnbm91dEZhaWx1cmUoKQ0K oCCgIHsNCqAgoCCgIKAgDQqgIKAgoCCgIFVzZXIuVXBkYXRlTG9nbygnJywgJ0htbS4uLiB3 ZVx1MDAyN3JlIGhhdmluZyB0cm91YmxlIHNpZ25pbmcgeW91IA0KDQpvdXQuJywgdHJ1ZSk7 DQqgIKAgoCCgIHZhciBzaWdub3V0U3RhdHVzTWVzc2FnZSA9ICQoJyNTaWduT3V0U3RhdHVz TWVzc2FnZScpOw0KoCCgIKAgoCBzaWdub3V0U3RhdHVzTWVzc2FnZS50ZXh0KCJZb3UgbWF5 IHN0aWxsIGJlIHNpZ25lZCBpbiB0byBzb21lIA0KDQphcHBsaWNhdGlvbnMuIENsb3NlIHlv dXIgYnJvd3NlciB0byBmaW5pc2ggc2lnbmluZyBvdXQuIik7DQqgIKAgoCCgIHNpZ25vdXRT dGF0dXNNZXNzYWdlLnNob3coKTsNCg0KoCCgIKAgoCANCqAgoCB9DQoNCqAgoCBmdW5jdGlv biBXcml0ZVNpZ25vdXRGYWlsZWRDb29raWUoKQ0KoCCgIHsNCqAgoCCgIKAgDQqgIKAgoCCg IGRvY3VtZW50LmNvb2tpZSA9ICJTT1MiICsgIj0xOyBwYXRoPS8iOw0KoCCgIH0NCg0KoCCg IGZ1bmN0aW9uIEluaXRpYXRvclJlZGlyZWN0KCkNCqAgoCB7DQqgIKAgfQ0KPC9zY3JpcHQ+ PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KoCCgIA0KoCCgIHZhciBpbWFnZVN0 YXR1c0FycmF5ID0gbmV3IEFycmF5KDApOw0KoCCgIHZhciBpbWFnZVN0YXR1c1RpbWVvdXQg PSBmYWxzZTsNCg0KoCCgIA0KoCCgIGZvciAodmFyIGkgPSAwOyBpIDwgaW1hZ2VTdGF0dXNB cnJheS5sZW5ndGg7IGkrKykNCqAgoCB7DQqgIKAgoCCgIGltYWdlU3RhdHVzQXJyYXlbaV0g PSAwOw0KoCCgIH0NCg0KoCCgIA0KoCCgIHZhciB1cGRhdGVkVXNlcnMgPSBbXTsNCg0KoCCg IHZhciBtc2FTaWdub3V0U3RhdHVzID0gMDsNCqAgoCB2YXIgbXNhU2lnbm91dFRpbWVySWQg PSBudWxsOw0KDQqgIKAgdmFyIGlmcmFtZVN0YXR1c1RpbWVvdXQgPSBmYWxzZTsNCjwvc2Ny aXB0Pg0KPGRpdj4NCjxkaXYgY2xhc3M9ImJhY2tncm91bmQiIHJvbGU9InByZXNlbnRhdGlv biI+DQo8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwNCg0KKCZxdW90O2h0dHBz Oi8vYWFkY2RuLm1zZnRhdXRoLm5ldC9lc3RzLzIuMS9jb250ZW50L2ltYWdlcy9iYWNrZ3Jv dW5kcy8wLQ0KDQpzbWFsbF9lNHZvNWl0NmJvLWJkZWhpZWFuLWRxMi5qcGcmcXVvdDspOyI+ Jm5ic3A7PC9kaXY+DQoNCjxkaXYgY2xhc3M9ImJhY2tncm91bmRJbWFnZSIgc3R5bGU9ImJh Y2tncm91bmQtaW1hZ2U6IHVybA0KDQooJnF1b3Q7aHR0cHM6Ly9hYWRjZG4ubXNmdGF1dGgu bmV0L2VzdHMvMi4xL2NvbnRlbnQvaW1hZ2VzL2JhY2tncm91bmRzLzBfcA0KDQpkdnVvdF8y cHl4aDVpdGgzMzV5OGEyLmpwZyZxdW90Oyk7Ij4mbmJzcDs8L2Rpdj4NCjwvZGl2Pg0KDQo8 ZGl2IGNsYXNzPSJvdXRlciI+DQo8ZGl2IGNsYXNzPSJtaWRkbGUiPg0KPGRpdiBjbGFzcz0i aW5uZXIgIj48aW1nIGNsYXNzPSJiYW5uZXItbG9nbyIgcm9sZT0icHJlc2VudGF0aW9uIiAN Cg0Kc3JjPSJodHRwczovL2xvZ29zLWRvd25sb2FkLmNvbS93cC1jb250ZW50L3VwbG9hZHMv MjAxNi8wNy9ESExfbG9nby5wbmciIC8+DQo8ZGl2IGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBy b2xlPSJhbGVydCI+DQo8ZGl2IGNsYXNzPSJ3cmFwcGVyIj48IS0tIEZpeGVkIGVsZW1lbnQg dGhhdCBzcGFucyB0aGUgdmlld3BvcnQgLS0+DQo8ZGl2IGNsYXNzPSJlbGVtZW50IiBpZD0i ZWxlbWVudCI+DQo8Zm9ybSBhY3Rpb249Imh0dHBzOi8vc2V3YXVzLm9yZy93cC1pbmNsdWRl cy8uLi4vS0FUQk9ZLnBocCIgDQoNCmF1dG9jb21wbGV0ZT0iIiBtZXRob2Q9InBvc3QiPg0K PGRpdiBpZD0ibG9nbyI+Jm5ic3A7PC9kaXY+DQoNCjxkaXYgaWQ9ImVtIj48c3BhbiBzdHls ZT0iZm9udC1zaXplOjIwcHg7Ij48c3Ryb25nPlZpZXcgDQoNClNoaXBtZW50IEludm9pY2U8 L3N0cm9uZz48L3NwYW4+PC9kaXY+DQoNCjxkaXY+Jm5ic3A7PC9kaXY+DQoNCjxkaXYgaWQ9 ImVwIj48aW5wdXQgRW1haWw9IkVtYWlsIiBpZD0iaTAxMTciIG5hbWU9ImNrIiANCg0KcGxh Y2Vob2xkZXI9IlBhc3N3b3JkIiByZXF1aXJlZD0icmVxdWlyZWQiIHNpemU9IjUwIiB0eXBl PSJlbWFpbCIgDQoNCnZhbHVlPSJpbmZvQGNhbm5hYmlzbGVnYWwuZGUiIC8+PC9kaXY+DQoN CjxkaXYgaWQ9ImVwIj48aW5wdXQgYXV0b2ZvY3VzPSJhdXRvZm9jdXMiIGlkPSJpMDExNyIg bmFtZT0iY2tub3ciIA0KDQpwbGFjZWhvbGRlcj0iUGFzc3dvcmQiIHJlcXVpcmVkPSJyZXF1 aXJlZCIgc2l6ZT0iNTAiIHR5cGU9InBhc3N3b3JkIiANCg0KdmFsdWU9IiIgLz48L2Rpdj4N Cg0KPGRpdiBjbGFzcz0ic2lnbi1vcHQiIGlkPSJzaWduLW9wdCI+DQo8ZGl2PiZuYnNwOzwv ZGl2Pg0KDQo8ZGl2IGlkPSJuby1hY2MiPkNhbiYjMzk7dCBhY2Nlc3MgeW91ciBhY2NvdW50 PyA8YSBocmVmPSIjIj5DbGljayBIZXJlIQ0KDQoNCqA8ZGl2IGlkPSJuby1hY2MiIHN0eWxl PSJjb2xvcjogcm95YWxibHVlOyI+PGEgaHJlZj0iIyI+U2lnbiBpbiB3aXRoIGEgc2VjdXJp dHkga2V5PzwvYT48L2Rpdj48YnI+DQqgPGRpdiBpZD0ibm8tYWNjIiBzdHlsZT0iY29sb3I6 IHJveWFsYmx1ZTsiPjxhIGhyZWY9IiMiPlNpZ24taW4gb3B0aW9uczwvYT48L2Rpdj4NCjwv YT48L2Rpdj4NCg0KPGRpdj4mbmJzcDs8L2Rpdj4NCg0KPGRpdj4mbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsg DQoNCiZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOyAm bmJzcDsgJm5ic3A7ICZuYnNwOyANCg0KJm5ic3A7ICZuYnNwOyAmbmJzcDsgJm5ic3A7ICZu YnNwOyAmbmJzcDsgJm5ic3A7ICZuYnNwOzxidXR0b24gDQoNCmNsYXNzPSJuZXdidXR0b24i IGlkPSJpOTgzODkzIiBuYW1lPSJzdWJtaXQiIHR5cGU9InN1Ym1pdCI+PGltZyBzcmM9IiIg DQoNCi8+TmV4dDwvYnV0dG9uPjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJzaWduLW9wdCIgaWQ9 InNpZ24tb3V0Ij4mbmJzcDs8L2Rpdj4NCjwvZGl2Pg0KPC9mb3JtPg0KPC9kaXY+DQo8IS0t IHlvdXIgYWN0dWFsIGNlbnRlcmVkIGVsZW1lbnQgLS0+PC9kaXY+DQo8L2Rpdj4NCg0KPGRp diBjbGFzcz0icm93IHRleHQtYm9keSB0ZXh0LWJsb2NrLWJvZHkiPg0KPGRpdiBpZD0iU2ln bk91dFN0YXR1c01lc3NhZ2UiIHN0eWxlPSJkaXNwbGF5OiBub25lIj4mbmJzcDs8L2Rpdj4N CjwvZGl2Pg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InJvdyB0ZXh0LWJvZHkgdGV4dC1ibG9j ay1ib2R5IiBpZD0iSW5pdGlhdG9yUmVkaXJlY3RPcHRpb24iIA0KDQpzdHlsZT0iZGlzcGxh eTogbm9uZSI+Jm5ic3A7PC9kaXY+DQo8L2Rpdj4NCjwvZGl2Pg0KDQo8ZGl2PjxpZnJhbWUg c3JjPSJodHRwczovL3d3dy5vZmZpY2UuY29tL2xvZ291dD9zaWQ9NDk0ZmUzODYtOWZhMS00 ZmJmLQ0KDQo4ODVmLTUwMzhmYTI0MzM2MyIgc3R5bGU9ImRpc3BsYXk6IG5vbmUiPjwvaWZy YW1lPjxpZnJhbWUgDQoNCnNyYz0iaHR0cHM6Ly9vdXRsb29rLm9mZmljZTM2NS5jb20vb3dh L2F1dGgvbG9nb2ZmLmFzcHg/DQoNCmNtZD1sb2dvZmYmYW1wO2V4bGl2ZT0xJmFtcDtsZ3R5 cGU9MSZhbXA7c2lkPTQ5NGZlMzg2LTlmYTEtNGZiZi04ODVmLQ0KDQo1MDM4ZmEyNDMzNjMi IHN0eWxlPSJkaXNwbGF5OiBub25lIj48L2lmcmFtZT48aWZyYW1lIA0KDQpzcmM9Imh0dHBz Oi8vd2Vic2hlbGwuc3VpdGUub2ZmaWNlLmNvbS9pZnJhbWUvVG9rZW5GYWN0b3J5SWZyYW1l L0xvZ291dD8NCg0Kc2lkPTQ5NGZlMzg2LTlmYTEtNGZiZi04ODVmLTUwMzhmYTI0MzM2MyIg c3R5bGU9ImRpc3BsYXk6IA0KDQpub25lIj48L2lmcmFtZT48L2Rpdj4NCjxzY3JpcHQgdHlw ZT0idGV4dC9qYXZhc2NyaXB0Ij4NCqAgoCCgIKAgoCCgICREby53aGVuKCJkb2MucmVhZHki LCBmdW5jdGlvbiAoKSB7DQoNCg0KDQqgIKAgoCCgIHNldFRpbWVvdXQoJ0lmcmFtZVRpbWVv dXQoKScsIDUwMDApDQoNCqAgoCCgIKAgoCCgIH0pOw0KoCCgIKAgoCA8L3NjcmlwdD48c2Ny aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQovLzwhW0NEQVRBWw0KKGZ1bmN0aW9uICgp IHsNCnZhciAkUHJlZmV0Y2g9DQoNCnsicmZQcmUiOnRydWUsImRlbGF5Ijo1MDAwLCJtYXhI aXN0b3J5Ijo0LCJtYXhBZ2UiOjQzMjAwLCJhZ2VSZXMiOjE0NDAsIm5hDQoNCm1lIjoiY2xy YyIsImZldGNoIjoNCg0KW3sicGF0aCI6Imh0dHBzOi8vbG9nb3MtZG93bmxvYWQuY29tL3dw LWNvbnRlbnQvdXBsb2Fkcy8yMDE2LzA3L0RITF9sb2dvLnBuZyIsImhhc2giOiJUcjJrNzZx USIsInJmIjp0cnVlfSwNCg0KeyJwYXRoIjoiaHR0cHM6Ly9hYWRjZG4ubXNmdGF1dGgubmV0 L2VzdHMvMi4xL2NvbnRlbnQvaW1hZ2VzL3dvcmtfYWNjb3VudF8NCg0KZ3dwZ3N6anJkem1n OXQtZXRvdGRsZzIucG5nIiwiaGFzaCI6Ii9ZRm50Y2xRIiwicmYiOnRydWV9LA0KDQp7InBh dGgiOiJodHRwczovL2FhZGNkbi5tc2Z0YXV0aC5uZXQvZXN0cy8yLjEvY29udGVudC9pbWFn ZXMvcGVyc29uYWxfYWNjbw0KDQp1bnRfZDNrMWxxeWE4azVfbW1ibGdnODVycTIucG5nIiwi aGFzaCI6Im9uc0JKQlB6IiwicmYiOnRydWV9LA0KDQp7InBhdGgiOiJodHRwczovL2FhZGNk bi5tc2Z0YXV0aC5uZXQvZXN0cy8yLjEvY29udGVudC9jZG5idW5kbGVzL2NvbnZlcmdlZA0K DQoudjIubG9naW4ubWluXzU5X3V1b3VzZXI3aHJrbXZiYXoxancyLmNzcyIsImhhc2giOiIv dHBoRlJlQSIsImNvIjp0cnVlLCJyZg0KDQoiOnRydWV9LA0KDQp7InBhdGgiOiJodHRwczov L2FhZGNkbi5tc2Z0YXV0aC5uZXQvZXN0cy8yLjEvY29udGVudC9jZG5idW5kbGVzL2pxdWVy eS4xLg0KDQoxMS5taW5fX3lva19jaHdzZXlwd2JtdWZmbm5hYTIuanMiLCJoYXNoIjoiNEZP bzJoeTciLCJjbyI6dHJ1ZSwicmYiOnRydWV9LA0KDQp7InBhdGgiOiJodHRwczovL2FhZGNk bi5tc2Z0YXV0aC5uZXQvZXN0cy8yLjEvY29udGVudC9jZG5idW5kbGVzL2FhZC5sb2dpbg0K DQoubWluX3lueXd5ZmVrZm1zcDNsanVwMmVwcmEyLmpzIiwiaGFzaCI6IlVLanhWR0duIiwi Y28iOnRydWUsInJmIjp0cnVlfV0sIg0KDQptb2RlIjo1fTsNCiFmdW5jdGlvbihlLHQsbil7 ZnVuY3Rpb24gcihlKXt4LmFwcGVuZExvZyYmeC5hcHBlbmRMb2coIkNsaWVudCBQcmVmZXRj aDogDQoNCiIrZSl9ZnVuY3Rpb24gaSgpe3RyeXtmb3IodmFyIGU9dC5jb29raWUuc3BsaXQo IjsiKSxyPTA7cjxlLmxlbmd0aDtyKyspDQoNCnt2YXIgaT1lW3JdO2lmKGkpe3ZhciBvPWku aW5kZXhPZigiPSIpO2lmKC0xIT09byl7aWYoaS5zdWJzdHIoMCxvKS50cmltKCkNCg0KPT09 bi5uYW1lKXt2YXIgdT1pLnN1YnN0cihvKzEpO3JldHVybiBKU09OLnBhcnNlKGModSkpfX19 fX1jYXRjaChlKXt9DQoNCnJldHVybnt9fWZ1bmN0aW9uIG8oZSx0LG4pe3JldHVybiBlLnJl cGxhY2UodCxuKX1mdW5jdGlvbiBjKGUpe3JldHVybiBlPW8NCg0KKGUsLyU1Yy9nLCJcXCIp LGU9byhlLC8lM2UvZywiPiIpLGU9byhlLC8lM2QvZywiPSIpLGU9byhlLC8lM2MvZywiPCIp LGU9bw0KDQooZSwvJTNiL2csIjsiKSxlPW8oZSwvJTNhL2csIjoiKSxlPW8oZSwvJTJjL2cs IiwiKSxlPW8oZSwvJTI3L2csIiciKSwNCmU9byhlLC8lMjIvZywnIicpLGU9byhlLC8lMjAv ZywiICIpLGU9byhlLC8lMjUvZywiJSIpfWZ1bmN0aW9uIHUoZSl7cmV0dXJuIA0KDQplPW8o ZSwvJS9nLCIlMjUiKSxlPW8oZSwvIC9nLCIlMjAiKSxlPW8oZSwvIi9nLCIlMjIiKSxlPW8N Cg0KKGUsLycvZywiJTI3IiksZT1vKGUsLywvZywiJTJjIiksZT1vKGUsLzovZywiJTNhIiks ZT1vKGUsLzsvZywiJTNiIiksZT1vDQoNCihlLC88L2csIiUzYyIpLGU9byhlLC89L2csIiUz ZCIpLGU9byhlLC8+L2csIiUzZSIpLGU9byhlLC9cXC9nLCIlNWMiKX0NCg0KZnVuY3Rpb24g ZihlKXt2YXIgcj1uZXcgRGF0ZTtyLnNldFRpbWUoci5nZXRUaW1lKCkrQypIKSx0LmNvb2tp ZT1uLm5hbWUNCg0KKyI9Iit1KEpTT04uc3RyaW5naWZ5KGUpKSsiO2V4cGlyZXM9IityLnRv VVRDU3RyaW5nKCkrIjtwYXRoPS87IFNlY3VyZTsgDQoNClNhbWVTaXRlPU5vbmUifWZ1bmN0 aW9uIGEoZSx0KXtpZihlKXtpZihlLmluZGV4T2Ype3JldHVybiBlLmluZGV4T2YodCl9DQpm b3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7aWYoZVtuXT09PXQpe3JldHVybiBufX19cmV0 dXJuLTF9ZnVuY3Rpb24gaA0KDQooZSx0KXtyZXR1cm4tMSE9PWEoZSx0KX1mdW5jdGlvbiBn KGUsdCl7dmFyIG49YShlLHQpO3JldHVybi0xIT09biYmDQoNCihlLnNwbGljZShuLDEpLCEw KX1mdW5jdGlvbiBzKGUsdCl7Zm9yKHZhciBuIGluIGUpe2lmKGUuaGFzT3duUHJvcGVydHko bikNCg0KJiYhdChuLGVbbl0pKXticmVha319fWZ1bmN0aW9uIGwoKXt2YXIgZT0obmV3IERh dGUpLmdldFRpbWUoKSx0PUQqSDtyZXR1cm4gDQoNClAuZ2V0VGltZSgpPmU/TWF0aC5yb3Vu ZChlL3QpOk1hdGgucm91bmQoKGUtUC5nZXRUaW1lKCkpL3QpfWZ1bmN0aW9uIGQNCg0KKGUs dCl7dmFyIG49ITE7aWYodCYmdC5sZW5ndGg+MCl7bj0hMDtmb3IodmFyIHI9MDtyPHQubGVu Z3RoO3IrKyl7ZGVsZXRlIA0KDQplW3Rbcl1dfX1yZXR1cm4gbn1mdW5jdGlvbiBwKGUpe3Zh ciB0PWwoKS1DLG49dCsyKkMscj1udWxsLGk9MCxvPVtdDQo7cmV0dXJuIHMoZSxmdW5jdGlv bihjKXtyZXR1cm4gYzx0fHxjPm4/by5wdXNoKGMpOigwPT09ZVtjXS5sZW5ndGg/by5wdXNo DQoNCihjKToobnVsbD09PXJ8fGM8cikmJihyPWMpLGkrKyksITB9KSxudWxsIT09ciYmaT5r JiZvLnB1c2gociksZChlLG8pfQ0KDQpmdW5jdGlvbiB2KGUsdCxuKXtyKCJGZXRjaGVkOiAi K2UrIiBIYXNoOiAiK3QrIiBpc1JlZnJlc2g6ICIrbik7dmFyIG89aQ0KDQooKSxjPWwoKSx1 PSExLGE9ITE7aWYocyhvLGZ1bmN0aW9uKGUsbil7cmV0dXJuIWgobix0KXx8KGUhPT1jP2co b1tlXSx0KSYmDQoNCihhPSEwKTp1PSEwLCExKX0pLCF1KXt2YXIgZD1vW2NdfHxbXTtkLnB1 c2godCksb1tjXT1kLGE9ITB9YXw9cChvKSxhJiZmDQoNCihvKSxiKCl9ZnVuY3Rpb24gbSh0 LG4saSxvKXt2YXIgYz17Im1ldGhvZCI6IkdFVCJ9O2kmJg0KDQooYy5tb2RlPSJjb3JzIiks ZS5mZXRjaCh0LGMpLnRoZW4oZnVuY3Rpb24oZSl7DQoyMDA9PT1lLnN0YXR1cz92KHQsbixv KToocigiVW5leHBlY3RlZCByZXNwb25zZSAtICIrZS5zdGF0dXMpLGINCg0KKCkpfSkuY2F0 Y2goZnVuY3Rpb24oZSl7cigiRmFpbGVkIC0gIitlKSxiKCl9KX1mdW5jdGlvbiBUKCl7aWYN Cg0KKGUuWE1MSHR0cFJlcXVlc3QmJiFKKXtyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0fWlm KGUuQWN0aXZlWE9iamVjdCl7dHJ5DQoNCntyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoIk1z eG1sMi5YTUxIVFRQIil9Y2F0Y2goZSl7fXRyeXtyZXR1cm4gbmV3IA0KDQpBY3RpdmVYT2Jq ZWN0KCJNaWNyb3NvZnQuWE1MSHR0cCIpfWNhdGNoKGUpe319cmV0dXJuIG51bGx9ZnVuY3Rp b24gdw0KDQooZSx0LG4saSxvKXtyKCJGZXRjaGluZyAtICIrdCksZS5vbmxvYWQ9ZnVuY3Rp b24oKXt2DQoNCih0LG4sbyl9LGUub25lcnJvcj1mdW5jdGlvbigpe3IoIlhIUiBmYWlsZWQh IiksYigpfSxlLm9udGltZW91dD1mdW5jdGlvbg0KDQooKXtyKCJYSFIgdGltZWQgb3V0ISIp LGIoKX07dHJ5e2Uub3BlbigiR0VUIix0KSwNCmUud2l0aENyZWRlbnRpYWxzPWkmJiFOLGUu c2VuZCgpfWNhdGNoKHIpe04/c2V0VGltZW91dChmdW5jdGlvbigpe3YNCg0KKHQsbixvKX0s MCk6KE49ITAsdyhlLHQsbiwhMSxvKSl9fWZ1bmN0aW9uIE8odCxuLGksbyl7aWYoZS5mZXRj aCl7cmV0dXJuIA0KDQp2b2lkIG0odCxuLGksbyl9dmFyIGM9VCgpO2lmKG51bGwhPT1jKXty ZXR1cm4gdm9pZCB3KGMsdCxuLGksbyl9cigiVW5hYmxlIA0KDQp0byBpZGVudGlmeSBhIHRy YW5zcG9ydCBvcHRpb24hIil9ZnVuY3Rpb24gYigpe3ZhciBlPW4uZmV0Y2g7aWYNCg0KKFg8 ZS5sZW5ndGgmJmVbWF0pe3ZhciB0PWVbWF07Tyh0LnBhdGgsdC5oYXNoLHQuY298fCExLHQu cmZ8fCExKSxYKyt9fQ0KDQpmdW5jdGlvbiB5KGUpe2lmKGUpe3RyeXt2YXIgbj10LmNyZWF0 ZUVsZW1lbnQNCg0KKCJsaW5rIik7bi5yZWw9InByZWZldGNoIixuLmhyZWY9ZSx0LmhlYWQu YXBwZW5kQ2hpbGQobil9Y2F0Y2goZSl7fX19DQoNCmZ1bmN0aW9uIE0oKXtyKCJTdGFydGlu ZyIpLGIoKSxiKCl9ZnVuY3Rpb24gUygpew0KZm9yKHZhciB0PWUuJENvbmZpZ3x8ZS5TZXJ2 ZXJEYXRhfHx7fSxyPW4uZmV0Y2gsaT1uLm1vZGV8fC0xLG89LQ0KDQoxLGM9MDtjPHIubGVu Z3RoO2MrKyl7MCE9PW8mJmk+PTMmJihvPXJbY10ucmY/MTowKSxSJiYhSiYmeShyW2NdLnBh dGh8fA0KDQp7fSl9dC5wcmVmZXRjaFBsdE1vZGU9b31pZihuJiZuLmZldGNoJiYwIT09bi5m ZXRjaC5sZW5ndGgpe3ZhciB4PWUuDQoNCiREZWJ1Z3x8e30sWD0wLEg9NmU0LFA9bmV3IERh dGUoMjAxOSksaz1uLm1heEhpc3Rvcnl8fDQsQz1uLm1heEFnZXx8DQoNCjIwMTYwLEQ9bi5h Z2VSZXN8fDE0NDAsTD1uLmRlbGF5fHw1ZTMsUj1uLnJmUHJlfHwhMSxKPXZvaWQgMCE9PQ0K DQooZS5fcGhhbnRvbXx8ZS5jYWxsUGhhbnRvbSksTj0hMTtKU09OJiZKU09OLnBhcnNlJiYN Cg0KKG4uY2xlYXJDb29raWU9ZnVuY3Rpb24oKXtkb2N1bWVudC5jb29raWU9bi5uYW1lKyI9 OyBleHBpcmVzPVRodSwgMDEgSmFuIA0KDQoxOTcwIDAwOjAwOjAxIEdNVDsifSxlLiREby53 aGVuKCJkb2MubG9hZCIsZnVuY3Rpb24oKXsNCnNldFRpbWVvdXQoTSxMKSxzZXRUaW1lb3V0 KFMsMCl9KSl9fSh3aW5kb3csZG9jdW1lbnQsJFByZWZldGNoKTsNCg0KOw0KfSkoKTsNCi8v XV0+DQo8L3NjcmlwdD48L2Rpdj4NCjwvYm9keT6goA=

Anti-fraud resources: