<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE module [
  <!ELEMENT module (dtdversion,name,version,description*,help*,about*,requires*,file+)>
  <!ELEMENT dtdversion (#PCDATA)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT version (#PCDATA)>
  <!ELEMENT mincmsversion (#PCDATA)>
  <!ELEMENT description (#PCDATA)>
  <!ELEMENT help (#PCDATA)>
  <!ELEMENT about (#PCDATA)>
  <!ELEMENT requires (requiredname,requiredversion)>
  <!ELEMENT requiredname (#PCDATA)>
  <!ELEMENT requiredversion (#PCDATA)>
  <!ELEMENT file (filename,isdir,data)>
  <!ELEMENT filename (#PCDATA)>
  <!ELEMENT isdir (#PCDATA)>
  <!ELEMENT data (#PCDATA)>
]>
<module>
	<dtdversion>1.3</dtdversion>
	<name>PayPalButtonMaker</name>
	<version>0.2</version>
  <mincmsversion>1.5.4</mincmsversion>
	<help>PGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9DU1MvTWFzdGVyQ1NTLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+PGRpdiBjbGFzcz0iU2ltV3JhcCI+PGIgY2xhc3M9InJib3R0b20iPjxiIGNsYXNzPSJyMSI+PC9iPiA8YiBjbGFzcz0icjIiPjwvYj48YiBjbGFzcz0icjMiPjwvYj4gPGIgY2xhc3M9InI0Ij48L2I+PC9iPg0KDQo8ZGl2IGNsYXNzPSJTaW1jb24iPg0KPGgzPldoYXQgRG9lcyBUaGlzIERvPy0tLSB0aGlzIG5lZWRzIHVwZGF0aW5nPC9oMz4NCjxwPk1ha2UgYW5kIG1hbmFnZSBQYXlQYWwgQnV0dG9uczwvcD4NCg0KWW91IGVuZCB1cCB3aXRoIHRoaXMuLi4gPGZvcm0gYWN0aW9uPSJodHRwOi8vbG9jYWxob3N0L3N0b2NrXzFfNV80L2FkbWluL2xpc3Rtb2R1bGVzLnBocD9fc189Mjk1ZWY1OTQmYWN0aW9uPWV4cG9ydHhtbCZtb2R1bGU9UGF5UGFsQnV0dG9uTWFrZXImQnRuPU1vZHVsZURvbmF0ZSIgbWV0aG9kPSJwb3N0Ij48aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iaHR0cDovL2xvY2FsaG9zdC9zdG9ja18xXzVfNC9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL2ltYWdlcy9zdXBwb3J0LnBuZyIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iIj48L2Zvcm0+DQoNCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPg0KDQoNCjxici8+PGJyLz4NCg0KPGgzPkdldCB0aGUgYnV0dG9uPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e2Ntc19tb2R1bGUgbW9kdWxlPVBheVBhbEJ1dHRvbk1ha2VyIE1vZGU9ImRlZmF1bHQiIEJ0bj0iQkxTQnRuIn0gPC9zcGFuPiA8YnIvPjxici8+DQoNCjxoMz5EbyBzb21ldGhpbmcgb24gdGhlIHJldHVybjwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPntjbXNfbW9kdWxlIG1vZHVsZT1QYXlQYWxCdXR0b25NYWtlciBNb2RlPSJyZWNlaXZlciIgQnRuPSJCTFNCdG4iIFJVTmFjdGlvbj0iVURUIn0gPC9zcGFuPiA8YnIvPjxici8+DQoNCjxoMz5UZXN0IHZpYSB0aGUgUGF5UGFsIFNhbmRib3g8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSJjb2RlSElHSExJR0hUIj57Y21zX21vZHVsZSBtb2R1bGU9UGF5UGFsQnV0dG9uTWFrZXIgTW9kZT0iZGVmYXVsdCIgQnRuPSJCTFNCdG4iIFNhbmRCb3g9dHJ1ZX0gPC9zcGFuPiA8YnIvPjxici8+DQoNCjxoMz5PdXRwdXQgdGhlIEZpbmFsIG1lc3NhZ2U8L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSJjb2RlSElHSExJR0hUIj57JFVwZ3JhZGVNRVNTfTwvc3Bhbj4gYmVsb3cgdGhlICJyZWNlaXZlciIgdGFnIDxici8+PGJyLz4NCg0KDQoNCg0KPGJyLz48YnIvPg0KPGg0PlBhcmFtczwvaDQ+DQo8dWw+DQo8bGk+PHN0cm9uZz5Nb2RlPSJkZWZhdWx0Ijwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGRlZmF1bHQ8YnIvPnwgcmVjZWl2ZXI8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5CdG49IiIgPC9zdHJvbmc+PGVtPihSZXF1aXJlZCk8L2VtPiA8YnIvPnwgc2V0IHRoZSBhbGlhczxici8+PC9saT4NCjxsaT48c3Ryb25nPlNhbmRCb3g9dHJ1ZSA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBmYWxzZTxici8+PC9saT4NCg0KPGxpPjxzdHJvbmc+UlVOYWN0aW9uPSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVEVDxici8+fCAqTW9yZSBjb21pbmcgU29vbio8YnIvPjwvbGk+DQo8bGk+PHN0cm9uZz5MYW5nPSIiIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IFVzZSBDb3VudHJ5IENvZGVzIFRvIGR5bmFtaWNseSBzZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBQYXlQYWwgcGFnZTxici8+PC9saT4NCg0KPC91bD4NCjxici8+DQo8aDI+Q291bnRyeSBDb2RlczwvaDI+DQo8ZGl2IGNsYXNzPSJjb250cnlDb2RlcyI+DQpBRkdIQU5JU1RBTiAgLSAgPHN0cm9uZz5BRjwvc3Ryb25nPjxici8+QUxBTkQgSVNMQU5EUyAgLSAgPHN0cm9uZz5BWDwvc3Ryb25nPjxici8+QUxCQU5JQSAgLSAgPHN0cm9uZz5BTDwvc3Ryb25nPjxici8+QUxHRVJJQSAgLSAgPHN0cm9uZz5EWjwvc3Ryb25nPjxici8+QU1FUklDQU4gU0FNT0EgIC0gIDxzdHJvbmc+QVM8L3N0cm9uZz48YnIvPkFORE9SUkEgIC0gIDxzdHJvbmc+QUQ8L3N0cm9uZz48YnIvPkFOR09MQSAgLSAgPHN0cm9uZz5BTzwvc3Ryb25nPjxici8+QU5HVUlMTEEgIC0gIDxzdHJvbmc+QUk8L3N0cm9uZz48YnIvPkFOVEFSQ1RJQ0EgIC0gIDxzdHJvbmc+QVE8L3N0cm9uZz48YnIvPkFOVElHVUEgQU5EIEJBUkJVREEgIC0gIDxzdHJvbmc+QUc8L3N0cm9uZz48YnIvPkFSR0VOVElOQSAgLSAgPHN0cm9uZz5BUjwvc3Ryb25nPjxici8+QVJNRU5JQSAgLSAgPHN0cm9uZz5BTTwvc3Ryb25nPjxici8+QVJVQkEgIC0gIDxzdHJvbmc+QVc8L3N0cm9uZz48YnIvPkFVU1RSQUxJQSAgLSAgPHN0cm9uZz5BVTwvc3Ryb25nPjxici8+QVVTVFJJQSAgLSAgPHN0cm9uZz5BVDwvc3Ryb25nPjxici8+QVpFUkJBSUpBTiAgLSAgPHN0cm9uZz5BWjwvc3Ryb25nPjxici8+QkFIQU1BUyAgLSAgPHN0cm9uZz5CUzwvc3Ryb25nPjxici8+QkFIUkFJTiAgLSAgPHN0cm9uZz5CSDwvc3Ryb25nPjxici8+QkFOR0xBREVTSCAgLSAgPHN0cm9uZz5CRDwvc3Ryb25nPjxici8+QkFSQkFET1MgIC0gIDxzdHJvbmc+QkI8L3N0cm9uZz48YnIvPkJFTEFSVVMgIC0gIDxzdHJvbmc+Qlk8L3N0cm9uZz48YnIvPkJFTEdJVU0gIC0gIDxzdHJvbmc+QkU8L3N0cm9uZz48YnIvPkJFTElaRSAgLSAgPHN0cm9uZz5CWjwvc3Ryb25nPjxici8+QkVOSU4gIC0gIDxzdHJvbmc+Qko8L3N0cm9uZz48YnIvPkJFUk1VREEgIC0gIDxzdHJvbmc+Qk08L3N0cm9uZz48YnIvPkJIVVRBTiAgLSAgPHN0cm9uZz5CVDwvc3Ryb25nPjxici8+Qk9MSVZJQSAgLSAgPHN0cm9uZz5CTzwvc3Ryb25nPjxici8+Qk9TTklBIEFORCBIRVJaRUdPVklOQSAgLSAgPHN0cm9uZz5CQTwvc3Ryb25nPjxici8+Qk9UU1dBTkEgIC0gIDxzdHJvbmc+Qlc8L3N0cm9uZz48YnIvPkJPVVZFVCBJU0xBTkQgIC0gIDxzdHJvbmc+QlY8L3N0cm9uZz48YnIvPkJSQVpJTCAgLSAgPHN0cm9uZz5CUjwvc3Ryb25nPjxici8+QlJJVElTSCBJTkRJQU4gT0NFQU4gVEVSUklUT1JZICAtICA8c3Ryb25nPklPPC9zdHJvbmc+PGJyLz5CUlVORUkgREFSVVNTQUxBTSAgLSAgPHN0cm9uZz5CTjwvc3Ryb25nPjxici8+QlVMR0FSSUEgIC0gIDxzdHJvbmc+Qkc8L3N0cm9uZz48YnIvPkJVUktJTkEgRkFTTyAgLSAgPHN0cm9uZz5CRjwvc3Ryb25nPjxici8+QlVSVU5ESSAgLSAgPHN0cm9uZz5CSTwvc3Ryb25nPjxici8+Q0FNQk9ESUEgIC0gIDxzdHJvbmc+S0g8L3N0cm9uZz48YnIvPkNBTUVST09OICAtICA8c3Ryb25nPkNNPC9zdHJvbmc+PGJyLz5DQU5BREEgIC0gIDxzdHJvbmc+Q0E8L3N0cm9uZz48YnIvPkNBUEUgVkVSREUgIC0gIDxzdHJvbmc+Q1Y8L3N0cm9uZz48YnIvPkNBWU1BTiBJU0xBTkRTICAtICA8c3Ryb25nPktZPC9zdHJvbmc+PGJyLz5DRU5UUkFMIEFGUklDQU4gUkVQVUJMSUMgIC0gIDxzdHJvbmc+Q0Y8L3N0cm9uZz48YnIvPkNIQUQgIC0gIDxzdHJvbmc+VEQ8L3N0cm9uZz48YnIvPkNISUxFICAtICA8c3Ryb25nPkNMPC9zdHJvbmc+PGJyLz5DSElOQSAgLSAgPHN0cm9uZz5DTjwvc3Ryb25nPjxici8+Q0hSSVNUTUFTIElTTEFORCAgLSAgPHN0cm9uZz5DWDwvc3Ryb25nPjxici8+Q09DT1MgKEtFRUxJTkcpIElTTEFORFMgIC0gIDxzdHJvbmc+Q0M8L3N0cm9uZz48YnIvPkNPTE9NQklBICAtICA8c3Ryb25nPkNPPC9zdHJvbmc+PGJyLz5DT01PUk9TICAtICA8c3Ryb25nPktNPC9zdHJvbmc+PGJyLz5DT05HTyAgLSAgPHN0cm9uZz5DRzwvc3Ryb25nPjxici8+Q09OR08sIFRIRSBERU1PQ1JBVElDIFJFUFVCTElDIE9GIFRIRSAgLSAgPHN0cm9uZz5DRDwvc3Ryb25nPjxici8+Q09PSyBJU0xBTkRTICAtICA8c3Ryb25nPkNLPC9zdHJvbmc+PGJyLz5DT1NUQSBSSUNBICAtICA8c3Ryb25nPkNSPC9zdHJvbmc+PGJyLz5DT1RFIEQnSVZPSVJFICAtICA8c3Ryb25nPkNJPC9zdHJvbmc+PGJyLz5DUk9BVElBICAtICA8c3Ryb25nPkhSPC9zdHJvbmc+PGJyLz5DVUJBICAtICA8c3Ryb25nPkNVPC9zdHJvbmc+PGJyLz5DWVBSVVMgIC0gIDxzdHJvbmc+Q1k8L3N0cm9uZz48YnIvPkNaRUNIIFJFUFVCTElDICAtICA8c3Ryb25nPkNaPC9zdHJvbmc+PGJyLz5ERU5NQVJLICAtICA8c3Ryb25nPkRLPC9zdHJvbmc+PGJyLz5ESklCT1VUSSAgLSAgPHN0cm9uZz5ESjwvc3Ryb25nPjxici8+RE9NSU5JQ0EgIC0gIDxzdHJvbmc+RE08L3N0cm9uZz48YnIvPkRPTUlOSUNBTiBSRVBVQkxJQyAgLSAgPHN0cm9uZz5ETzwvc3Ryb25nPjxici8+RUNVQURPUiAgLSAgPHN0cm9uZz5FQzwvc3Ryb25nPjxici8+RUdZUFQgIC0gIDxzdHJvbmc+RUc8L3N0cm9uZz48YnIvPkVMIFNBTFZBRE9SICAtICA8c3Ryb25nPlNWPC9zdHJvbmc+PGJyLz5FUVVBVE9SSUFMIEdVSU5FQSAgLSAgPHN0cm9uZz5HUTwvc3Ryb25nPjxici8+RVJJVFJFQSAgLSAgPHN0cm9uZz5FUjwvc3Ryb25nPjxici8+RVNUT05JQSAgLSAgPHN0cm9uZz5FRTwvc3Ryb25nPjxici8+RVRISU9QSUEgIC0gIDxzdHJvbmc+RVQ8L3N0cm9uZz48YnIvPkZBTEtMQU5EIElTTEFORFMgKE1BTFZJTkFTKSAgLSAgPHN0cm9uZz5GSzwvc3Ryb25nPjxici8+RkFST0UgSVNMQU5EUyAgLSAgPHN0cm9uZz5GTzwvc3Ryb25nPjxici8+RklKSSAgLSAgPHN0cm9uZz5GSjwvc3Ryb25nPjxici8+RklOTEFORCAgLSAgPHN0cm9uZz5GSTwvc3Ryb25nPjxici8+RlJBTkNFICAtICA8c3Ryb25nPkZSPC9zdHJvbmc+PGJyLz5GUkVOQ0ggR1VJQU5BICAtICA8c3Ryb25nPkdGPC9zdHJvbmc+PGJyLz5GUkVOQ0ggUE9MWU5FU0lBICAtICA8c3Ryb25nPlBGPC9zdHJvbmc+PGJyLz5GUkVOQ0ggU09VVEhFUk4gVEVSUklUT1JJRVMgIC0gIDxzdHJvbmc+VEY8L3N0cm9uZz48YnIvPkdBQk9OICAtICA8c3Ryb25nPkdBPC9zdHJvbmc+PGJyLz5HQU1CSUEgIC0gIDxzdHJvbmc+R008L3N0cm9uZz48YnIvPkdFT1JHSUEgIC0gIDxzdHJvbmc+R0U8L3N0cm9uZz48YnIvPkdFUk1BTlkgIC0gIDxzdHJvbmc+REU8L3N0cm9uZz48YnIvPkdIQU5BICAtICA8c3Ryb25nPkdIPC9zdHJvbmc+PGJyLz5HSUJSQUxUQVIgIC0gIDxzdHJvbmc+R0k8L3N0cm9uZz48YnIvPkdSRUVDRSAgLSAgPHN0cm9uZz5HUjwvc3Ryb25nPjxici8+R1JFRU5MQU5EICAtICA8c3Ryb25nPkdMPC9zdHJvbmc+PGJyLz5HUkVOQURBICAtICA8c3Ryb25nPkdEPC9zdHJvbmc+PGJyLz5HVUFERUxPVVBFICAtICA8c3Ryb25nPkdQPC9zdHJvbmc+PGJyLz5HVUFNICAtICA8c3Ryb25nPkdVPC9zdHJvbmc+PGJyLz5HVUFURU1BTEEgIC0gIDxzdHJvbmc+R1Q8L3N0cm9uZz48YnIvPkdVRVJOU0VZICAtICA8c3Ryb25nPkdHPC9zdHJvbmc+PGJyLz5HVUlORUEgIC0gIDxzdHJvbmc+R048L3N0cm9uZz48YnIvPkdVSU5FQS1CSVNTQVUgIC0gIDxzdHJvbmc+R1c8L3N0cm9uZz48YnIvPkdVWUFOQSAgLSAgPHN0cm9uZz5HWTwvc3Ryb25nPjxici8+SEFJVEkgIC0gIDxzdHJvbmc+SFQ8L3N0cm9uZz48YnIvPkhFQVJEIElTTEFORCBBTkQgTUNET05BTEQgSVNMQU5EUyAgLSAgPHN0cm9uZz5ITTwvc3Ryb25nPjxici8+SE9MWSBTRUUgKFZBVElDQU4gQ0lUWSBTVEFURSkgIC0gIDxzdHJvbmc+VkE8L3N0cm9uZz48YnIvPkhPTkRVUkFTICAtICA8c3Ryb25nPkhOPC9zdHJvbmc+PGJyLz5IT05HIEtPTkcgIC0gIDxzdHJvbmc+SEs8L3N0cm9uZz48YnIvPkhVTkdBUlkgIC0gIDxzdHJvbmc+SFU8L3N0cm9uZz48YnIvPklDRUxBTkQgIC0gIDxzdHJvbmc+SVM8L3N0cm9uZz48YnIvPklORElBICAtICA8c3Ryb25nPklOPC9zdHJvbmc+PGJyLz5JTkRPTkVTSUEgIC0gIDxzdHJvbmc+SUQ8L3N0cm9uZz48YnIvPklSQU4sIElTTEFNSUMgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+SVI8L3N0cm9uZz48YnIvPklSQVEgIC0gIDxzdHJvbmc+SVE8L3N0cm9uZz48YnIvPklSRUxBTkQgIC0gIDxzdHJvbmc+SUU8L3N0cm9uZz48YnIvPklTTEUgT0YgTUFOICAtICA8c3Ryb25nPklNPC9zdHJvbmc+PGJyLz5JU1JBRUwgIC0gIDxzdHJvbmc+SUw8L3N0cm9uZz48YnIvPklUQUxZICAtICA8c3Ryb25nPklUPC9zdHJvbmc+PGJyLz5KQU1BSUNBICAtICA8c3Ryb25nPkpNPC9zdHJvbmc+PGJyLz5KQVBBTiAgLSAgPHN0cm9uZz5KUDwvc3Ryb25nPjxici8+SkVSU0VZICAtICA8c3Ryb25nPkpFPC9zdHJvbmc+PGJyLz5KT1JEQU4gIC0gIDxzdHJvbmc+Sk88L3N0cm9uZz48YnIvPktBWkFLSFNUQU4gIC0gIDxzdHJvbmc+S1o8L3N0cm9uZz48YnIvPktFTllBICAtICA8c3Ryb25nPktFPC9zdHJvbmc+PGJyLz5LSVJJQkFUSSAgLSAgPHN0cm9uZz5LSTwvc3Ryb25nPjxici8+S09SRUEsIERFTU9DUkFUSUMgUEVPUExFJ1MgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+S1A8L3N0cm9uZz48YnIvPktPUkVBLCBSRVBVQkxJQyBPRiAgLSAgPHN0cm9uZz5LUjwvc3Ryb25nPjxici8+S1VXQUlUICAtICA8c3Ryb25nPktXPC9zdHJvbmc+PGJyLz5LWVJHWVpTVEFOICAtICA8c3Ryb25nPktHPC9zdHJvbmc+PGJyLz5MQU8gUEVPUExFJ1MgREVNT0NSQVRJQyBSRVBVQkxJQyAgLSAgPHN0cm9uZz5MQTwvc3Ryb25nPjxici8+TEFUVklBICAtICA8c3Ryb25nPkxWPC9zdHJvbmc+PGJyLz5MRUJBTk9OICAtICA8c3Ryb25nPkxCPC9zdHJvbmc+PGJyLz5MRVNPVEhPICAtICA8c3Ryb25nPkxTPC9zdHJvbmc+PGJyLz5MSUJFUklBICAtICA8c3Ryb25nPkxSPC9zdHJvbmc+PGJyLz5MSUJZQU4gQVJBQiBKQU1BSElSSVlBICAtICA8c3Ryb25nPkxZPC9zdHJvbmc+PGJyLz5MSUVDSFRFTlNURUlOICAtICA8c3Ryb25nPkxJPC9zdHJvbmc+PGJyLz5MSVRIVUFOSUEgIC0gIDxzdHJvbmc+TFQ8L3N0cm9uZz48YnIvPkxVWEVNQk9VUkcgIC0gIDxzdHJvbmc+TFU8L3N0cm9uZz48YnIvPk1BQ0FPICAtICA8c3Ryb25nPk1PPC9zdHJvbmc+PGJyLz5NQUNFRE9OSUEsIFRIRSBGT1JNRVIgWVVHT1NMQVYgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+TUs8L3N0cm9uZz48YnIvPk1BREFHQVNDQVIgIC0gIDxzdHJvbmc+TUc8L3N0cm9uZz48YnIvPk1BTEFXSSAgLSAgPHN0cm9uZz5NVzwvc3Ryb25nPjxici8+TUFMQVlTSUEgIC0gIDxzdHJvbmc+TVk8L3N0cm9uZz48YnIvPk1BTERJVkVTICAtICA8c3Ryb25nPk1WPC9zdHJvbmc+PGJyLz5NQUxJICAtICA8c3Ryb25nPk1MPC9zdHJvbmc+PGJyLz5NQUxUQSAgLSAgPHN0cm9uZz5NVDwvc3Ryb25nPjxici8+TUFSU0hBTEwgSVNMQU5EUyAgLSAgPHN0cm9uZz5NSDwvc3Ryb25nPjxici8+TUFSVElOSVFVRSAgLSAgPHN0cm9uZz5NUTwvc3Ryb25nPjxici8+TUFVUklUQU5JQSAgLSAgPHN0cm9uZz5NUjwvc3Ryb25nPjxici8+TUFVUklUSVVTICAtICA8c3Ryb25nPk1VPC9zdHJvbmc+PGJyLz5NQVlPVFRFICAtICA8c3Ryb25nPllUPC9zdHJvbmc+PGJyLz5NRVhJQ08gIC0gIDxzdHJvbmc+TVg8L3N0cm9uZz48YnIvPk1JQ1JPTkVTSUEsIEZFREVSQVRFRCBTVEFURVMgT0YgIC0gIDxzdHJvbmc+Rk08L3N0cm9uZz48YnIvPk1PTERPVkEsIFJFUFVCTElDIE9GICAtICA8c3Ryb25nPk1EPC9zdHJvbmc+PGJyLz5NT05BQ08gIC0gIDxzdHJvbmc+TUM8L3N0cm9uZz48YnIvPk1PTkdPTElBICAtICA8c3Ryb25nPk1OPC9zdHJvbmc+PGJyLz5NT05UU0VSUkFUICAtICA8c3Ryb25nPk1TPC9zdHJvbmc+PGJyLz5NT1JPQ0NPICAtICA8c3Ryb25nPk1BPC9zdHJvbmc+PGJyLz5NT1pBTUJJUVVFICAtICA8c3Ryb25nPk1aPC9zdHJvbmc+PGJyLz5NWUFOTUFSICAtICA8c3Ryb25nPk1NPC9zdHJvbmc+PGJyLz5OQU1JQklBICAtICA8c3Ryb25nPk5BPC9zdHJvbmc+PGJyLz5OQVVSVSAgLSAgPHN0cm9uZz5OUjwvc3Ryb25nPjxici8+TkVQQUwgIC0gIDxzdHJvbmc+TlA8L3N0cm9uZz48YnIvPk5FVEhFUkxBTkRTICAtICA8c3Ryb25nPk5MPC9zdHJvbmc+PGJyLz5ORVRIRVJMQU5EUyBBTlRJTExFUyAgLSAgPHN0cm9uZz5BTjwvc3Ryb25nPjxici8+TkVXIENBTEVET05JQSAgLSAgPHN0cm9uZz5OQzwvc3Ryb25nPjxici8+TkVXIFpFQUxBTkQgIC0gIDxzdHJvbmc+Tlo8L3N0cm9uZz48YnIvPk5JQ0FSQUdVQSAgLSAgPHN0cm9uZz5OSTwvc3Ryb25nPjxici8+TklHRVIgIC0gIDxzdHJvbmc+TkU8L3N0cm9uZz48YnIvPk5JR0VSSUEgIC0gIDxzdHJvbmc+Tkc8L3N0cm9uZz48YnIvPk5JVUUgIC0gIDxzdHJvbmc+TlU8L3N0cm9uZz48YnIvPk5PUkZPTEsgSVNMQU5EICAtICA8c3Ryb25nPk5GPC9zdHJvbmc+PGJyLz5OT1JUSEVSTiBNQVJJQU5BIElTTEFORFMgIC0gIDxzdHJvbmc+TVA8L3N0cm9uZz48YnIvPk5PUldBWSAgLSAgPHN0cm9uZz5OTzwvc3Ryb25nPjxici8+T01BTiAgLSAgPHN0cm9uZz5PTTwvc3Ryb25nPjxici8+UEFLSVNUQU4gIC0gIDxzdHJvbmc+UEs8L3N0cm9uZz48YnIvPlBBTEFVICAtICA8c3Ryb25nPlBXPC9zdHJvbmc+PGJyLz5QQUxFU1RJTklBTiBURVJSSVRPUlksIE9DQ1VQSUVEICAtICA8c3Ryb25nPlBTPC9zdHJvbmc+PGJyLz5QQU5BTUEgIC0gIDxzdHJvbmc+UEE8L3N0cm9uZz48YnIvPlBBUFVBIE5FVyBHVUlORUEgIC0gIDxzdHJvbmc+UEc8L3N0cm9uZz48YnIvPlBBUkFHVUFZICAtICA8c3Ryb25nPlBZPC9zdHJvbmc+PGJyLz5QRVJVICAtICA8c3Ryb25nPlBFPC9zdHJvbmc+PGJyLz5QSElMSVBQSU5FUyAgLSAgPHN0cm9uZz5QSDwvc3Ryb25nPjxici8+UElUQ0FJUk4gIC0gIDxzdHJvbmc+UE48L3N0cm9uZz48YnIvPlBPTEFORCAgLSAgPHN0cm9uZz5QTDwvc3Ryb25nPjxici8+UE9SVFVHQUwgIC0gIDxzdHJvbmc+UFQ8L3N0cm9uZz48YnIvPlBVRVJUTyBSSUNPICAtICA8c3Ryb25nPlBSPC9zdHJvbmc+PGJyLz5RQVRBUiAgLSAgPHN0cm9uZz5RQTwvc3Ryb25nPjxici8+UkVVTklPTiAgLSAgPHN0cm9uZz5SRTwvc3Ryb25nPjxici8+Uk9NQU5JQSAgLSAgPHN0cm9uZz5STzwvc3Ryb25nPjxici8+UlVTU0lBTiBGRURFUkFUSU9OICAtICA8c3Ryb25nPlJVPC9zdHJvbmc+PGJyLz5SV0FOREEgIC0gIDxzdHJvbmc+Ulc8L3N0cm9uZz48YnIvPlNBSU5UIEhFTEVOQSAgLSAgPHN0cm9uZz5TSDwvc3Ryb25nPjxici8+U0FJTlQgS0lUVFMgQU5EIE5FVklTICAtICA8c3Ryb25nPktOPC9zdHJvbmc+PGJyLz5TQUlOVCBMVUNJQSAgLSAgPHN0cm9uZz5MQzwvc3Ryb25nPjxici8+U0FJTlQgUElFUlJFIEFORCBNSVFVRUxPTiAgLSAgPHN0cm9uZz5QTTwvc3Ryb25nPjxici8+U0FJTlQgVklOQ0VOVCBBTkQgVEhFIEdSRU5BRElORVMgIC0gIDxzdHJvbmc+VkM8L3N0cm9uZz48YnIvPlNBTU9BICAtICA8c3Ryb25nPldTPC9zdHJvbmc+PGJyLz5TQU4gTUFSSU5PICAtICA8c3Ryb25nPlNNPC9zdHJvbmc+PGJyLz5TQU8gVE9NRSBBTkQgUFJJTkNJUEUgIC0gIDxzdHJvbmc+U1Q8L3N0cm9uZz48YnIvPlNBVURJIEFSQUJJQSAgLSAgPHN0cm9uZz5TQTwvc3Ryb25nPjxici8+U0VORUdBTCAgLSAgPHN0cm9uZz5TTjwvc3Ryb25nPjxici8+U0VSQklBIEFORCBNT05URU5FR1JPICAtICA8c3Ryb25nPkNTPC9zdHJvbmc+PGJyLz5TRVlDSEVMTEVTICAtICA8c3Ryb25nPlNDPC9zdHJvbmc+PGJyLz5TSUVSUkEgTEVPTkUgIC0gIDxzdHJvbmc+U0w8L3N0cm9uZz48YnIvPlNJTkdBUE9SRSAgLSAgPHN0cm9uZz5TRzwvc3Ryb25nPjxici8+U0xPVkFLSUEgIC0gIDxzdHJvbmc+U0s8L3N0cm9uZz48YnIvPlNMT1ZFTklBICAtICA8c3Ryb25nPlNJPC9zdHJvbmc+PGJyLz5TT0xPTU9OIElTTEFORFMgIC0gIDxzdHJvbmc+U0I8L3N0cm9uZz48YnIvPlNPTUFMSUEgIC0gIDxzdHJvbmc+U088L3N0cm9uZz48YnIvPlNPVVRIIEFGUklDQSAgLSAgPHN0cm9uZz5aQTwvc3Ryb25nPjxici8+U09VVEggR0VPUkdJQSBBTkQgVEhFIFNPVVRIIFNBTkRXSUNIIElTTEFORFMgIC0gIDxzdHJvbmc+R1M8L3N0cm9uZz48YnIvPlNQQUlOICAtICA8c3Ryb25nPkVTPC9zdHJvbmc+PGJyLz5TUkkgTEFOS0EgIC0gIDxzdHJvbmc+TEs8L3N0cm9uZz48YnIvPlNVREFOICAtICA8c3Ryb25nPlNEPC9zdHJvbmc+PGJyLz5TVVJJTkFNRSAgLSAgPHN0cm9uZz5TUjwvc3Ryb25nPjxici8+U1ZBTEJBUkQgQU5EIEpBTiBNQVlFTiAgLSAgPHN0cm9uZz5TSjwvc3Ryb25nPjxici8+U1dBWklMQU5EICAtICA8c3Ryb25nPlNaPC9zdHJvbmc+PGJyLz5TV0VERU4gIC0gIDxzdHJvbmc+U0U8L3N0cm9uZz48YnIvPlNXSVRaRVJMQU5EICAtICA8c3Ryb25nPkNIPC9zdHJvbmc+PGJyLz5TWVJJQU4gQVJBQiBSRVBVQkxJQyAgLSAgPHN0cm9uZz5TWTwvc3Ryb25nPjxici8+VEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQSAgLSAgPHN0cm9uZz5UVzwvc3Ryb25nPjxici8+VEFKSUtJU1RBTiAgLSAgPHN0cm9uZz5USjwvc3Ryb25nPjxici8+VEFOWkFOSUEsIFVOSVRFRCBSRVBVQkxJQyBPRiAgLSAgPHN0cm9uZz5UWjwvc3Ryb25nPjxici8+VEhBSUxBTkQgIC0gIDxzdHJvbmc+VEg8L3N0cm9uZz48YnIvPlRJTU9SLUxFU1RFICAtICA8c3Ryb25nPlRMPC9zdHJvbmc+PGJyLz5UT0dPICAtICA8c3Ryb25nPlRHPC9zdHJvbmc+PGJyLz5UT0tFTEFVICAtICA8c3Ryb25nPlRLPC9zdHJvbmc+PGJyLz5UT05HQSAgLSAgPHN0cm9uZz5UTzwvc3Ryb25nPjxici8+VFJJTklEQUQgQU5EIFRPQkFHTyAgLSAgPHN0cm9uZz5UVDwvc3Ryb25nPjxici8+VFVOSVNJQSAgLSAgPHN0cm9uZz5UTjwvc3Ryb25nPjxici8+VFVSS0VZICAtICA8c3Ryb25nPlRSPC9zdHJvbmc+PGJyLz5UVVJLTUVOSVNUQU4gIC0gIDxzdHJvbmc+VE08L3N0cm9uZz48YnIvPlRVUktTIEFORCBDQUlDT1MgSVNMQU5EUyAgLSAgPHN0cm9uZz5UQzwvc3Ryb25nPjxici8+VFVWQUxVICAtICA8c3Ryb25nPlRWPC9zdHJvbmc+PGJyLz5VR0FOREEgIC0gIDxzdHJvbmc+VUc8L3N0cm9uZz48YnIvPlVLUkFJTkUgIC0gIDxzdHJvbmc+VUE8L3N0cm9uZz48YnIvPlVOSVRFRCBBUkFCIEVNSVJBVEVTICAtICA8c3Ryb25nPkFFPC9zdHJvbmc+PGJyLz5VTklURUQgS0lOR0RPTSAgLSAgPHN0cm9uZz5HQjwvc3Ryb25nPjxici8+VU5JVEVEIFNUQVRFUyAgLSAgPHN0cm9uZz5VUzwvc3Ryb25nPjxici8+VU5JVEVEIFNUQVRFUyBNSU5PUiBPVVRMWUlORyBJU0xBTkRTICAtICA8c3Ryb25nPlVNPC9zdHJvbmc+PGJyLz5VUlVHVUFZICAtICA8c3Ryb25nPlVZPC9zdHJvbmc+PGJyLz5VWkJFS0lTVEFOICAtICA8c3Ryb25nPlVaPC9zdHJvbmc+PGJyLz5WQU5VQVRVICAtICA8c3Ryb25nPlZVPC9zdHJvbmc+PGJyLz5WRU5FWlVFTEEgIC0gIDxzdHJvbmc+VkU8L3N0cm9uZz48YnIvPlZJRVQgTkFNICAtICA8c3Ryb25nPlZOPC9zdHJvbmc+PGJyLz5WSVJHSU4gSVNMQU5EUywgQlJJVElTSCAgLSAgPHN0cm9uZz5WRzwvc3Ryb25nPjxici8+VklSR0lOIElTTEFORFMsIFUuUy4gIC0gIDxzdHJvbmc+Vkk8L3N0cm9uZz48YnIvPldBTExJUyBBTkQgRlVUVU5BICAtICA8c3Ryb25nPldGPC9zdHJvbmc+PGJyLz5XRVNURVJOIFNBSEFSQSAgLSAgPHN0cm9uZz5FSDwvc3Ryb25nPjxici8+WUVNRU4gIC0gIDxzdHJvbmc+WUU8L3N0cm9uZz48YnIvPlpBTUJJQSAgLSAgPHN0cm9uZz5aTTwvc3Ryb25nPjxici8+WklNQkFCV0UgIC0gIDxzdHJvbmc+Wlc8L3N0cm9uZz48YnIvPg0KPC9kaXY+DQo8aDM+U3VwcG9ydDwvaDM+DQo8aDQ+U2NyZWVuY2FzdHMgZm9yIGV4dHJhIGhlbHAgd2lsbCBmYWxsb3ctLS0gb24gdGhlIFRPRE88L2g0Pg0KPHA+VGhpcyBtb2R1bGUgZG9lcyBub3QgaW5jbHVkZSBjb21tZXJjaWFsIHN1cHBvcnQuIEhvd2V2ZXIsIHRoZXJlIGFyZSBhIG51bWJlciBvZiByZXNvdXJjZXMgYXZhaWxhYmxlIHRvIGhlbHAgeW91IHdpdGggaXQ6PC9wPg0KPHVsPg0KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQgdmlzaXQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9wcGJtIj50aGUgQ01TIEZvcmdlPC9hPi48L2xpPg0KPGxpPkFkZGl0aW9uYWwgZGlzY3Vzc2lvbiBvZiB0aGlzIG1vZHVsZSBtYXkgYWxzbyBiZSBmb3VuZCBpbiB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLmNtc21hZGVzaW1wbGUub3JnIj5DTVMgTWFkZSBTaW1wbGUgRm9ydW1zPC9hPi48L2xpPg0KPC91bD4NCg0KPGgzPkNvcHlyaWdodCBhbmQgTGljZW5zZTwvaDM+DQo8cD5Db3B5cmlnaHQgJmNvcHk7IDIwMDksIGplcmVteUJhc3MgJmx0OzxhIGhyZWY9Imh0dHA6Ly9jb3JiZW5zcHJvZHVjdHMuY29tIj5jb3JiZW5zcHJvZHVjdHMuY29tPC9hPiZndDsgQWxsIFJpZ2h0cyBBcmUgUmVzZXJ2ZWQuPC9wPg0KPHA+VGhpcyBtb2R1bGUgaGFzIGJlZW4gcmVsZWFzZWQgdW5kZXIgdGhlIDxhIGhyZWY9Imh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTCI+R05VIFB1YmxpYyBMaWNlbnNlPC9hPi4gWW91IG11c3QgYWdyZWUgdG8gdGhpcyBsaWNlbnNlIGJlZm9yZSB1c2luZyB0aGUgbW9kdWxlLjwvcD4NCjwvZGl2ID48YiBjbGFzcz0icmJvdHRvbSI+PGIgY2xhc3M9InI0Ij48L2I+PGIgY2xhc3M9InIzIj48L2I+IDxiIGNsYXNzPSJyMiI+PC9iPiA8YiBjbGFzcz0icjEiPjwvYj48L2I+DQoNCjwvZGl2Pg0KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBqZXJlbXlCYXNzICZsdDtqZXJlbXliYXNzQGNhYmxlb25lLm5ldCZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjI8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz4NCjx1bD4NCg0KICA8bGk+VmVyc2lvbiAwLjEgQmV0YSByZWxlYXNlLjwvbGk+DQo8L3VsPjxiciAvPg==</about>
	<description>PayPalButtonMaker is a PayPal button manager. It handles the buttons internal to the site also lifts the 100 button cap of PayPal hosted buttons. Secure using time based sha1 encryption; Tie to most mods; Fire UTD's or plug-ins. Simple, flexible.</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCiAvLyR0aGlzLT5BZGRFdmVudEZvcm0oJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOw0KLy9pZigkdGhpcy0+Q2hlY2tCT09LSUVVc2VyKCkpew0KDQpnbG9iYWwgJGdDbXM7DQokY29uZmlnID0mICRnQ21zLT5HZXRDb25maWcoKTsgDQogDQovLy8vLy8tLS0tLWJ1dHRvbiB2YXJzDQoNCg0KLy8vLy8vLS0tLS1Nb2R1bGUgU3VwcG9ydA0KDQppZigkcGFyYW1zWydCdG4nXSE9Ik1vZHVsZURvbmF0ZSIpZXh0cmFjdCgkdGhpcy0+TGlzdEFCVE4oJHBhcmFtc1snQnRuJ10pKTsNCg0KDQoNCg0KDQoNCi8vLy8vLy0tLS0tT3B0aW9ucw0KDQokbm9fc2hpcHBpbmc9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdub19zaGlwcGluZycsJzAnKTsNCg0KDQovLy8vLy8tLS0tLWFjY291bnQgdmFycw0KDQokU2FuZEJveD0kcGFyYW1zWydTYW5kQm94J107DQppZigkU2FuZEJveCE9JycmJiAkU2FuZEJveD09dHJ1ZSl7DQogICAgJGJ1c2luZXNzTmFtZT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnU0FOREJPWF9idXNpbmVzc05hbWUnLCcnKTsNCiAgICAkc2FuZERvbWFpbj0ic2FuZGJveC4iOw0KfWVsc2UgaWYoJFNhbmRCb3ggPT0nJyB8fCAkU2FuZEJveD09ZmFsc2Upew0KCSRidXNpbmVzc05hbWU9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2J1c2luZXNzTmFtZScsJycpOw0KICAgICRzYW5kRG9tYWluPSIiOw0KfQ0KDQokY2FuY2VsX3JldHVybj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FuY2VsX3JldHVybicsJycpOw0KDQoNCiRpbWFnZV91cmw9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX3VybCcsJycpOw0KDQokY3BwX2hlYWRlcmJhY2tfY29sb3I9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJiYWNrX2NvbG9yJywnJyk7DQoNCiRjcHBfaGVhZGVyX2ltYWdlPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyX2ltYWdlJywnJyk7DQoNCmlmKGlzc2V0KCRwYXJhbXNbJ0xhbmcnXSkmJiRwYXJhbXNbJ0xhbmcnXSE9Jycpew0KJGxjPSRwYXJhbXNbJ0xhbmcnXTsNCn1lbHNlew0KJGxjPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdMYW5nJywnZW4nKTsJDQp9DQoNCg0KLy8vLy8vLS0tLS1zZWN1cml0eSBtZWFzdXJlcw0KLy8gc2FsdCBhbmQgaXBIYXNoIG1vdmUgDQokQnRuU2FsdCA9IHNoYTEoJGl0ZW1fbmFtZSk7DQokaXA9JF9TRVJWRVJbJ1JFTU9URV9BRERSJ107IA0KJGlwVmFyPXN0cl9yZXBsYWNlKCIuIiwgIiIsICRpcCk7DQokTnRoPWRhdGUoIkciKTsNCiRJUGhhc2hTdHIgPSBzaGExKCRpcFZhcik7DQokdGhlUkNPREU9JHRoaXMtPkdldFByZWZlcmVuY2UoJ0Zvcm1WYWx1ZScpOw0KJHRoZVJDT0RFPXN1YnN0cigkdGhlUkNPREUsMSwkTnRoKS4kSVBoYXNoU3RyLiRCdG5TYWx0LnN1YnN0cigkdGhlUkNPREUsJE50aCsxKTsNCiR0aGVLZXk9JHRoaXMtPkdldFByZWZlcmVuY2UoJ0Zvcm1LZXknKTsNCg0KaWYoJHBhcmFtc1snQnRuJ109PSJNb2R1bGVEb25hdGUiKXsNCiRidXNpbmVzc05hbWU9J2plcmVteWJhc3NAY2FibGVvbmUubmV0JzsNCiRCdG5UeXBlPSdfZG9uYXRpb25zJzsNCmlmKHN0cnN0cigkX1NFUlZFUlsnSFRUUF9IT1NUJ10sICJsb2NhbGhvc3QiKSl7DQokY3BwX2hlYWRlcl9pbWFnZT0iaHR0cDovL3d3dy5jb3JiZW5zcHJvZHVjdHMuY29tL2ltYWdlcy9wcGJtRG9uYXRlLnBuZyI7DQp9ZWxzZXsNCiRjcHBfaGVhZGVyX2ltYWdlPSJodHRwczovLyIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiIvYWRtaW4vbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9pbWFnZXMvcHBibURvbmF0ZS5wbmciOwkNCn0NCiRCdXR0b25JbWc9JGNvbmZpZ1sncm9vdF91cmwnXS4iL21vZHVsZXMvUGF5UGFsQnV0dG9uTWFrZXIvaW1hZ2VzL3N1cHBvcnQucG5nIjsJDQp9DQoNCi8vLy8vLy0tLS0taW50ZXJuYWwgbWVhc3VyZXMNCi8vIGdldCB1cmwgYW5kIGhvdyB0byBhZGQgcGFyYW0gDQokSW50ZXJhbHVybHMgPSAkdGhpcy0+UmVhbFVSTCgpOw0KaWYoc3Ryc3RyKCRJbnRlcmFsdXJscywgIj8iKSApeyRtYXJrPScmJzt9ZWxzZXskbWFyaz0nPyc7fQ0KDQoNCg0KaWYoJHBhcmFtc1snTW9kZSddPT0ncmVjZWl2ZXInKXsNCglpZihpc3NldCgkcGFyYW1zWydCdG4nXSkpew0KCQkkdGhlQ09ERSA9ICAkX0dFVFskdGhlS2V5XTsgDQoJCWlmICgkdGhlQ09ERSA9PSAkdGhlUkNPREUpew0KCQkJDQoJCQlleHRyYWN0KCR0aGlzLT5MaXN0QUJUTigkcGFyYW1zWydCdG4nXSkpOw0KCQkJDQoJCQkgaWYoJHBhcmFtc1snUlVOYWN0aW9uJ109PSdVRFQnKXsNCgkJCQkkdXNlcnRhZ29wcyA9JiAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsNCgkJCQkkdXNlcnRhZ29wcy0+Q2FsbFVzZXJUYWcoJFRoZUFjdGlvbiwgJFRoZVBhcmFtcyk7DQoJCQkgfWVsc2VpZigkcGFyYW1zWydSVU5hY3Rpb24nXT09J1BsdWdpbicpew0KCQkJCSANCgkJCSB9DQoJCQkvL01haWxSb3V0ZSgpOw0KCQkJDQoJCQkJJGdDbXMtPnNtYXJ0eS0+YXNzaWduKCdVcGdyYWRlTUVTUycsICRVcGdyYWRlTUVTUyk7DQoJCQkNCgkJfSANCgl9DQp9ZWxzZXsgIA0KCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbnRlcm5hbCcpPT0nMScpewkNCgkJaWYoJF9HRVRbJ0J0biddPT0kcGFyYW1zWydCdG4nXSl7DQoJCQkkZGF0YVsnY21kJ10gPSRCdG5UeXBlOw0KCQkJJGRhdGFbJ2J1c2luZXNzJ10gPSRidXNpbmVzc05hbWU7DQoJCQlpZihpc3NldCgkYW1vdW50KSYmJGFtb3VudCE9JycpJGRhdGFbJ2Ftb3VudCddID0kYW1vdW50Ow0KCQkJaWYoaXNzZXQoJGltYWdlX3VybCkmJiRpbWFnZV91cmwhPScnKSRkYXRhWydpbWFnZV91cmwnXSA9JGltYWdlX3VybDsNCgkJCWlmKCRub19zaGlwcGluZyE9MCkkZGF0YVsnbm9fc2hpcHBpbmcnXSA9JG5vX3NoaXBwaW5nOw0KCQkJaWYoaXNzZXQoJGl0ZW1fbmFtZSkmJiRpdGVtX25hbWUhPScnKSRkYXRhWydpdGVtX25hbWUnXSA9JGl0ZW1fbmFtZTsNCgkJCWlmKGlzc2V0KCRjcHBfaGVhZGVyYmFja19jb2xvcikmJiRjcHBfaGVhZGVyYmFja19jb2xvciE9JycpJGRhdGFbJ2NwcF9oZWFkZXJiYWNrX2NvbG9yJ10gPSRjcHBfaGVhZGVyYmFja19jb2xvcjsNCgkJCWlmKGlzc2V0KCRjcHBfaGVhZGVyX2ltYWdlKSYmJGNwcF9oZWFkZXJfaW1hZ2UhPScnKSRkYXRhWydjcHBfaGVhZGVyX2ltYWdlJ10gPSRjcHBfaGVhZGVyX2ltYWdlOw0KCQkJJGRhdGFbJ3JtJ10gPTI7DQoJCQkkc2VjdXJlUmVkaXJlY3Q9JHRoZUtleS4iPSIuJHRoZVJDT0RFOw0KCQkJJFJEVVJMPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdSZWRpcmVjdFVSTCcpOw0KCQkJaWYoJFJEVVJMIT0nJykkZGF0YVsncmV0dXJuJ109JHRoaXMtPlJlZGlyZWN0VVJMKCRzZWN1cmVSZWRpcmVjdCk7IA0KCQkJaWYoaXNzZXQoJGNhbmNlbF9yZXR1cm4pJiYkY2FuY2VsX3JldHVybiE9JycpJGRhdGFbJ2NhbmNlbF9yZXR1cm4nXT0kY2FuY2VsX3JldHVybjsNCgkJCWlmKGlzc2V0KCRsYykmJiRsYyE9JycpJGRhdGFbJ2xjICddPSRsYzsNCgkJCQ0KCQkJLy8gYW5kIHNvIG9uIHdpdGggYW55IGluZm8geW91IHdhbnQgdG8gc2VuZCB0byBQYXlQYWwsIGFueXRoaW5nIHlvdSB3b3VsZCBwdXQgaW4gdGhlIGZvcm0NCgkJCS8vIFRoZW4sIHNpbXBseToNCgkJCSRyZXN1bHQgPSAkdGhpcy0+cG9zdF9pdCgkZGF0YSwgImh0dHA6Ly93d3cuIi4kc2FuZERvbWFpbi4icGF5cGFsLmNvbS9jZ2ktYmluL3dlYnNjciIpOyANCgkJfWVsc2V7DQoJCQkkb3V0cHV0ID0gJzxmb3JtIGFjdGlvbj0iJy4kSW50ZXJhbHVybHMuJG1hcmsuJ0J0bj0nLiRwYXJhbXNbJ0J0biddLiciIG1ldGhvZD0icG9zdCI+JzsNCgkJCSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSInLiRCdXR0b25JbWcuJyIgYm9yZGVyPSIwIiBuYW1lPSJzdWJtaXQiIGFsdD0iIj4nOw0KCQkJJG91dHB1dCAuPSAnPC9mb3JtPic7DQoJCQllY2hvICRvdXRwdXQ7DQoJCX0NCgl9ZWxzZXsNCgkJJG91dHB1dCA9ICc8Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LicuJHNhbmREb21haW4uJ3BheXBhbC5jb20vY2dpLWJpbi93ZWJzY3IiIG1ldGhvZD0icG9zdCI+JzsNCgkJJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY21kIiB2YWx1ZT0iJy4kQnRuVHlwZS4nIj4nOw0KCQlpZihpc3NldCgkaW1hZ2VfdXJsKSYmJGltYWdlX3VybCE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaW1hZ2VfdXJsIiB2YWx1ZT0iJy4kaW1hZ2VfdXJsLiciPic7DQoJCSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1c2luZXNzIiB2YWx1ZT0iJy4kYnVzaW5lc3NOYW1lLiciPic7DQoJCWlmKCRub19zaGlwcGluZyE9MCkkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJub19zaGlwcGluZyIgdmFsdWU9IicuJG5vX3NoaXBwaW5nLiciPic7DQoJCSRzZWN1cmVSZWRpcmVjdD0kdGhlS2V5LiI9Ii4kdGhlUkNPREU7DQoJCSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJldHVybiIgdmFsdWU9IicuJHRoaXMtPlJlZGlyZWN0VVJMKCRzZWN1cmVSZWRpcmVjdCkuJyI+JzsNCgkJaWYoaXNzZXQoJGNhbmNlbF9yZXR1cm4pJiYkY2FuY2VsX3JldHVybiE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY2FuY2VsX3JldHVybiIgdmFsdWU9IicuJGNhbmNlbF9yZXR1cm4uJyI+JzsNCgkJJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icm0iIHZhbHVlPSIyIj4nOw0KCQlpZihpc3NldCgkYW1vdW50KSYmJGFtb3VudCE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYW1vdW50IiB2YWx1ZT0iJy4kYW1vdW50LiciIC8+JzsNCgkJaWYoaXNzZXQoJGl0ZW1fbmFtZSkmJiRpdGVtX25hbWUhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Iml0ZW1fbmFtZSIgdmFsdWU9IicuJGl0ZW1fbmFtZS4nIiAvPic7DQoJCWlmKGlzc2V0KCRjcHBfaGVhZGVyYmFja19jb2xvcikmJiRjcHBfaGVhZGVyYmFja19jb2xvciE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3BwX2hlYWRlcmJhY2tfY29sb3IiIHZhbHVlPSInLiRjcHBfaGVhZGVyYmFja19jb2xvci4nIiAvPic7DQoJCWlmKGlzc2V0KCRjcHBfaGVhZGVyX2ltYWdlKSYmJGNwcF9oZWFkZXJfaW1hZ2UhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNwcF9oZWFkZXJfaW1hZ2UiIHZhbHVlPSInLiRjcHBfaGVhZGVyX2ltYWdlLiciIC8+JzsNCgkJaWYoaXNzZXQoJGxjKSYmJGxjIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYyIgdmFsdWU9IicuJGxjLiciIC8+JzsNCgkJJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImltYWdlIiBzcmM9IicuJEJ1dHRvbkltZy4nIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSIiPic7DQoJCSRvdXRwdXQgLj0gJzxpbWcgYWx0PSIiIGJvcmRlcj0iMCIgc3JjPSJodHRwczovL3d3dy4nLiRzYW5kRG9tYWluLidwYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMSI+JzsNCgkJJG91dHB1dCAuPSAnPC9mb3JtPic7DQoJCWVjaG8gJG91dHB1dDsNCgl9DQoNCn0NCg0KDQoNCg0KDQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KIw0KI1RoZSB0YWIgaGVhZGVycw0KIw0KZWNobyAnDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL2luY2x1ZGVzL01TXzEuMDAuMDAuanMiPjwvc2NyaXB0Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL2luY2x1ZGVzL2ZhcmJ0YXN0aWMuanMiPjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9pbmNsdWRlcy9NRV8xLjAwLjAwLmpzIj48L3NjcmlwdD4NCg0KPGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9DU1MvTWFzdGVyQ1NTLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz4NCjxsaW5rIG1lZGlhPSJzY3JlZW4iIGhyZWY9Ii4uL21vZHVsZXMvUGF5UGFsQnV0dG9uTWFrZXIvQ1NTL2ZhcmJ0YXN0aWMuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPg0KJzsNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiSGVhZGVycygpOw0KaWYgKEZBTFNFID09IGVtcHR5KCRwYXJhbXNbJ2FjdGl2ZV90YWInXSkpDQogIHsNCiAgICAkdGFiID0gJHBhcmFtc1snYWN0aXZlX3RhYiddOw0KICB9IGVsc2Ugew0KICAkdGFiID0gJyc7DQogfQ0KCQ0KaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpKQ0KICB7DQogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdlbWFpbF90ZW1wbGF0ZScsJHRoaXMtPkxhbmcoJ0J0bl9saXN0JyksICgnZW1haWxfdGVtcGxhdGUnID09ICR0YWIpP3RydWU6ZmFsc2UpOw0KICB9DQppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJykpDQogIHsNCiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2J0bm9wdGlvbnMnLCR0aGlzLT5MYW5nKCdCVE5vcHRpb25zJyksICgnYnRub3B0aW9ucycgPT0gJHRhYik/dHJ1ZTpmYWxzZSk7DQogIH0gIA0KaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpKQ0KICB7DQogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdvcHRpb25zJywkdGhpcy0+TGFuZygnQUNUb3B0aW9ucycpLCAoJ29wdGlvbnMnID09ICR0YWIpP3RydWU6ZmFsc2UpOw0KICB9DQogIA0KDQogIA0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOw0KDQojDQojVGhlIGNvbnRlbnQgb2YgdGhlIHRhYnMNCiMNCmVjaG8gJHRoaXMtPlN0YXJ0VGFiQ29udGVudCgpOw0KDQogIA0KaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpKQ0KICB7DQovLyAgICBlY2hvICR0aGlzLT5TdGFydFRhYignZW1haWx0ZW1wbGF0ZScsICRwYXJhbXMpOw0KLy8gICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX2VtYWlsdGVtcGxhdGV0YWIucGhwJyk7DQovLyAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsNCiANCiAgDQogIA0KICBlY2hvICR0aGlzLT5TdGFydFRhYignZW1haWxfdGVtcGxhdGUnLCAkcGFyYW1zKTsNCiAgICB7DQogICAgICBlY2hvICc8aDM+Jy4kdGhpcy0+TGFuZygndGl0bGVfYXZhaWxhYmxlX3RlbXBsYXRlcycpLic8L2gzPic7DQogICAgICAkdGhpcy0+X0FkbWluQ3JlYXRlVGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsDQoJCQkJICAgICAgJ2VtYWlsJywNCgkJCQkgICAgICAnZGVmYXVsdF9lbWFpbF90ZW1wbGF0ZV9jb250ZW50cycsDQoJCQkJICAgICAgJ2VtYWlsX3RlbXBsYXRlJywNCgkJCQkgICAgICAnY3VycmVudF9lbWFpbF90ZW1wbGF0ZScsDQoJCQkJICAgICAgJHRoaXMtPkxhbmcoJ3RpdGxlX2VtYWlsX3RlbXBsYXRlJykpOw0KICAgIH0NCiAgICBlY2hvICR0aGlzLT5FbmRUYWIoKTsNCiAgDQogfSAgDQppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJykpDQogIHsNCiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignYnRub3B0aW9ucycsICRwYXJhbXMpOw0KICAgIGluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5hZG1pbl9CVE5vcHRpb25zdGFiLnBocCcpOw0KICAgIGVjaG8gJHRoaXMtPkVuZFRhYigpOw0KICB9DQoNCmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKSkNCiAgew0KICAgIGVjaG8gJHRoaXMtPlN0YXJ0VGFiKCdvcHRpb25zJywgJHBhcmFtcyk7DQogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX0FDVG9wdGlvbnN0YWIucGhwJyk7DQogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7DQogIH0NCg0KZWNobyAkdGhpcy0+RW5kVGFiQ29udGVudCgpOw0KDQojIHZpbTp0cz00IHN3PTQgbm9ldA0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9DYXJzLw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYoICEgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkNCiAgew0KICAgIC8vIHRvZG8sIHBlcm1pc3Npb25zIG1lc3NhZ2UgaGVyZQ0KICAgIHJldHVybjsNCiAgfQ0KZ2xvYmFsICRnQ21zOw0KDQogIA0KJEJLU2V0PSRfR0VUWydtMV9CS1NldCddOw0KDQoJCSRkYiA9ICYkZ0Ntcy0+ZGI7DQoJICAJJHF1ZXJ5ID0gIkRFTEVURSAqIEZST00gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0biBwIElOTkVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQgcHAgT04gcC5JRCA9IHBwLklEIFdIRVJFIHAuQktTZXQ9JyIuJEJLU2V0LiInIjsNCgkJJHJlc3VsdCA9ICRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQlpZighJHJlc3VsdCkgew0KCQkJZWNobyAnRXJyb3I6ICcubXlzcWxfZXJyb3IoKTsNCgkJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7DQoJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvciBteXNxbF9lcnJvcigpJyxteXNxbF9lcnJvcigpKTsNCgkJfWVsc2V7DQovLyAvLyR0aGlzLT5GaXJlRGVidWcoInNhaWQgaXQncyBkb25lIHRoZXJlIiwnZXJyb3InKTsNCgkJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7DQoJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsJEJLU2V0KTsNCgkJfQ0KCQkNCgkJDQoJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywkQktTZXQpOw0KCQkvLyR0aGlzLT5teVJlZGlyZWN0VG9UYWIoJGlkLCAndXBsb2FkZm9ybV90ZW1wbGF0ZScpOw0KCQkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdCdG5ERUxFVEVEJywgJ2FjdGl2ZV90YWInID0+ICdlbWFpbF90ZW1wbGF0ZScpOw0KCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9DYXJzLw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYoICEkZ0NtcyApIGV4aXQoKTsNCg0KDQppZiggISAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgVGVtcGxhdGVzJykgKQ0KICB7DQogICAgLy8gdG9kbywgcGVybWlzc2lvbnMgbWVzc2FnZSBoZXJlDQogICAgcmV0dXJuOw0KICB9DQoNCg0KJEJ0blR5cGVBcnJheT1hcnJheSgNCgkJJ0J1eSBOb3cnPT4nX3hjbGljaycsDQoJCSdEb25hdGUnPT4nX2RvbmF0aW9ucycsDQoJCSdTdWJzY3JpYmUnPT4nX3hjbGljay1zdWJzY3JpcHRpb25zJywNCgkJJ0J1eSBHaWZ0IENlcnRpZmljYXRlJz0+J19vZS1naWZ0LWNlcnRpZmljYXRlJw0KCSk7DQoNCi8vIGhhbmRsZSBlcnJvcnMuDQppZiggaXNzZXQoJHBhcmFtc1snZXJyb3JzJ10pICkNCiAgew0KICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHBhcmFtc1snZXJyb3JzJ10pOw0KICB9DQoNCiRwYXJhbXNbJ29yaWdhY3Rpb24nXSA9ICRwYXJhbXNbJ2FjdGlvbiddOw0KJGNvbnRlbnRzID0gIiI7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLA0KCQkJICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ3NhdmVfQlROJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLA0KCQkJCQkJICAgIGZhbHNlLCAnJywgJHBhcmFtcykpOw0KaWYoICRwYXJhbXNbJ21vZGUnXSA9PSAnYWRkJyApew0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywNCgkJCSAgICAkdGhpcy0+Q3JlYXRlRm9ybVN0YXJ0ICgkaWQsICdzYXZlX0JUTicsJHJldHVybmlkLCdwb3N0JywnJyxmYWxzZSwgJycsICRwYXJhbXMpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlbmFtZScsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RlbXBsYXRlJywgIiIsIDQwICkpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAkcGFyYW1zWydtb2RlJ10gKSk7DQogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSkgJiYgJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddICE9ICcnICl7DQoJCSRjb250ZW50cyA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSk7DQogICAgICB9DQogIH1lbHNlew0KDQovLyAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLA0KLy8JCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZG9fZWRpdHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLA0KLy8JCQkJCQkgICAgZmFsc2UsICcnLCAkcGFyYW1zKSk7DQovLyAgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLCRwYXJhbXNbJ3RlbXBsYXRlJ10pOw0KLy8gICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywNCi8vCQkJICAgJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3RlbXBsYXRlJywgJHBhcmFtc1sndGVtcGxhdGUnXSApKTsNCgkJCSR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCRwYXJhbXNbJ0JLU2V0J10pOw0KZXh0cmFjdCgkdGhpcy0+TGlzdEFCVE4oJHBhcmFtc1snQktTZXQnXSkpOw0KDQoNCg0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdCS1NldCcsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ0JLU2V0JywgJHBhcmFtc1snQktTZXQnXSwgNDAsIDI1NSwgJ2Rpc2FibGVkPSJkaXNhYmxlZCInICkpOw0KDQoNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Ftb3VudCcsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2Ftb3VudCcsICRhbW91bnQsIDQwICkpOyANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Ftb3VudCcsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2Ftb3VudCcsICRhbW91bnQsIDQwICkpOyANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0J1dHRvbkltZycsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ0J1dHRvbkltZycsICRCdXR0b25JbWcsIDQwICkpOyAJCQ0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbV9uYW1lJywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnaXRlbV9uYW1lJywgJGl0ZW1fbmFtZSwgNDAgKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdCdG5UeXBlJywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnQnRuVHlwZScsICRCdG5UeXBlQXJyYXksICcnLCAkQnRuVHlwZSkpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaXRlbV9udW1iZXInLA0KCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdpdGVtX251bWJlcicsICRpdGVtX251bWJlciwgNDAgKSk7ICANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3F1YW50aXR5JywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAncXVhbnRpdHknLCAkcXVhbnRpdHksIDQwICkpOyAgIA0KDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdVcGdyYWRlTUVTUycsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1VwZ3JhZGVNRVNTJywgJFVwZ3JhZGVNRVNTLCA0MCApKTsgIA0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignVGhlQWN0aW9uJywNCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnVGhlQWN0aW9uJywgJFRoZUFjdGlvbiwgNDAgKSk7ICANCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1RoZVBhcmFtcycsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1RoZVBhcmFtcycsICRUaGVQYXJhbXMsIDQwICkpOyAgIA0KDQoNCg0KDQogICB9DQoNCi8vJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsY21zX2h0bWxfZW50aXR5X2RlY29kZSgkcGFyYW1zWyd0aXRsZSddKSk7DQppZiggJHBhcmFtc1snbW9kZSddID09ICdhZGQnICl7DQogIA0KICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0JLU2V0JywNCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnQktTZXQnLCAiIiwgNDAsIDI1NSwgJycgKSk7DQogICAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Ftb3VudCcsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2Ftb3VudCcsICIwMC4wMCIsIDQwICkpOyANCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0J1dHRvbkltZycsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ0J1dHRvbkltZycsICJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9idXlub3dDQ19MRy5naWYiLCA0MCApKTsgCQkNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1fbmFtZScsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2l0ZW1fbmFtZScsICIiLCA0MCApKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0J0blR5cGUnLA0KCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdCdG5UeXBlJywgJEJ0blR5cGVBcnJheSwgJycsICcnKSk7ICAJDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtX251bWJlcicsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2l0ZW1fbnVtYmVyJywgIiIsIDQwICkpOyAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdxdWFudGl0eScsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3F1YW50aXR5JywgIiIsIDQwICkpOyANCgkNCgkgICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdVcGdyYWRlTUVTUycsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1VwZ3JhZGVNRVNTJywgIiIsIDQwICkpOyAgDQoJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdUaGVBY3Rpb24nLA0KCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdUaGVBY3Rpb24nLCAiIiwgNDAgKSk7ICANCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1RoZVBhcmFtcycsDQoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1RoZVBhcmFtcycsICIiLCA0MCApKTsgICANCg0KCQ0KICANCgkJICAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuTW9kZScsDQoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJHBhcmFtc1snbW9kZSddICkpOyAgDQoNCiAgfWVsc2V7DQoNCg0KICB9DQoNCi8vJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJHBhcmFtc1snbW9kZSddKTsNCgkgIAkgIAkJICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbk1vZGUnLA0KCQkJJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ21vZGUnLCAkcGFyYW1zWydtb2RlJ10gKQ0KCQkJLy8uJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwgJ3dhcycsICRwYXJhbXNbJ1ZJTlYnXSApDQoJCQkpOyANCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9jYW5jZWwnLCAnPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IicuJHRoaXMtPkxhbmcoJ2Zvcm1fY2FuY2VsJykuJyIgb25jbGljaz0iamF2YXNjcmlwdDp3aW5kb3cuaGlzdG9yeS5nbygtMSkiIC8+Jyk7CSAgDQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Byb21wdF90ZW1wbGF0ZW5hbWUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGVuYW1lJykpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7DQokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RlbXBsYXRlJywNCgkJICAgICAgJHRoaXMtPkNyZWF0ZVN5bnRheEFyZWEgKCRpZCwgJGNvbnRlbnRzLCAndGVtcGxhdGVjb250ZW50JykpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0YnV0dG9uJywNCgkJCQkJCQkgJHRoaXMtPkxhbmcgKCdzdWJtaXQnKSkpOw0KJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnY2FuY2VsJywgDQoJCQkJCQkJICR0aGlzLT5MYW5nICgnY2FuY2VsJykpKTsNCiR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7DQoNCg0KDQplY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ2VkaXR0ZW1wbGF0ZS50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/action.save_ACTptions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycgKSApDQp7DQogIHJldHVybjsNCn0NCg0KDQoNCg0KY2xhc3MgSW1nUmVzaXplciB7DQoJcHJpdmF0ZSAkb3JpZ2luYWxGaWxlID0gJyc7DQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcmlnaW5hbEZpbGUgPSAnJykgew0KCQkkdGhpcyAtPiBvcmlnaW5hbEZpbGUgPSAkb3JpZ2luYWxGaWxlOw0KCX0NCglwdWJsaWMgZnVuY3Rpb24gcmVzaXplKCRuZXdXaWR0aCwgJHRhcmdldEZpbGUsICRxbHQpIHsNCgkJaWYgKGVtcHR5KCRuZXdXaWR0aCkgfHwgZW1wdHkoJHRhcmdldEZpbGUpKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJJHNyYyA9IGltYWdlY3JlYXRlZnJvbWpwZWcoJHRoaXMgLT4gb3JpZ2luYWxGaWxlKTsNCgkJbGlzdCgkd2lkdGgsICRoZWlnaHQpID0gZ2V0aW1hZ2VzaXplKCR0aGlzIC0+IG9yaWdpbmFsRmlsZSk7DQoJCSRuZXdIZWlnaHQgPSAoJGhlaWdodCAvICR3aWR0aCkgKiAkbmV3V2lkdGg7DQoJCSR0bXAgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkbmV3V2lkdGgsICRuZXdIZWlnaHQpOw0KCQlpbWFnZWNvcHlyZXNhbXBsZWQoJHRtcCwgJHNyYywgMCwgMCwgMCwgMCwgJG5ld1dpZHRoLCAkbmV3SGVpZ2h0LCAkd2lkdGgsICRoZWlnaHQpOw0KCQlpZiAoZmlsZV9leGlzdHMoJHRhcmdldEZpbGUpKSB7DQoJCQl1bmxpbmsoJHRhcmdldEZpbGUpOw0KCQl9DQoJCWltYWdlanBlZygkdG1wLCAkdGFyZ2V0RmlsZSwgJHFsdCk7IC8vIDQxIGlzIG15IGNob2ljZSwgbWFrZSBpdCBiZXR3ZWVuIDAgliAxMDAgZm9yIG91dHB1dCBpbWFnZSBxdWFsaXR5IHdpdGggMTAwIGJlaW5nIHRoZSBtb3N0IGx1eHVyaW91cw0KCX0NCn0NCg0KDQpmdW5jdGlvbiB1cGxvYWRJbWFnZSgkbmV3V2lkdGgsICR0YXJnZXRGaWxlLCRxbHQpew0KCWdsb2JhbCAkZ0NtczsNCgkkcHBibT0mJGdDbXMtPm1vZHVsZXNbJ1BheVBhbEJ1dHRvbk1ha2VyJ11bJ29iamVjdCddOw0KCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7DQoJJGRpciA9ICRjb25maWdbImltYWdlX3VwbG9hZHNfcGF0aCJdOw0KCSR1cmwgPSAkY29uZmlnWyJpbWFnZV91cGxvYWRzX3VybCJdOw0KCSRSdXJsID0gJGNvbmZpZ1sicm9vdF91cmwiXTsNCgkkcmVzaXplQXQ9JG5ld1dpZHRoOw0KDQoJJHJlbGRpciA9ICIvUFBCTSI7DQoJaWYgKCFpc3NldCgkSU1Db25maWdbJ3RodW1ibmFpbF9kaXInXSkpICRJTUNvbmZpZ1sndGh1bWJuYWlsX2RpciddID0gJyc7DQoJaWYgKGlzc2V0KCRfUE9TVFsncmVsZGlyJ10pKSAkcmVsZGlyID0gJF9QT1NUWydyZWxkaXInXTsNCgllbHNlIGlmIChpc3NldCgkX0dFVFsncmVsZGlyJ10pKSAkcmVsZGlyID0gJF9HRVRbJ3JlbGRpciddOw0KCWlmKCFmaWxlX2V4aXN0cygkZGlyLiIvUFBCTSIpKXsNCgkJCQlta2RpcigkZGlyLiIvUFBCTSIsIDA3NzcpOw0KCQkJCWF1ZGl0KC0xLCAkZGlyLiIvIi4kcmVsZGlyLCAnQ3JlYXRlZCBEaXJlY3RvcnknKTsNCgkJCQkNCgl9DQoNCglpZighZmlsZV9leGlzdHMoJGRpci4iLyIuJHJlbGRpcikpew0KCQkJCW1rZGlyKCRkaXIuIi8iLiRyZWxkaXIsIDA3NzcpOw0KCQkJCWF1ZGl0KC0xLCAkZGlyLiIvIi4kcmVsZGlyLCAnQ3JlYXRlZCBEaXJlY3RvcnknKTsNCgl9DQoJDQoJDQoJaWYgKHN0cnBvcygkcmVsZGlyLCAnLi4nKSA9PT0gZmFsc2UgJiYgc3RycG9zKCRyZWxkaXIsICdcXCcpID09PSBmYWxzZSl7DQoJCSRkaXIgLj0gJHJlbGRpcjsNCgl9DQoJDQoJDQoJaWYgKCFtb3ZlX3VwbG9hZGVkX2ZpbGUoJF9GSUxFU1siIi4kdGFyZ2V0RmlsZS4iIl1bJ3RtcF9uYW1lJ10sICRkaXIuIi8iLiRfRklMRVNbIiIuJHRhcmdldEZpbGUuIiJdWyduYW1lJ10pKXsNCgkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZmlsZW5vdHVwbG9hZGVkJykuIjwvbGk+IjsNCgkJCQkJCSRwcGJtLT5GaXJlRGVidWcoJ2Vycm9yJywkZXJyb3JzKTsNCgl9ZWxzZXsNCgkJY2htb2QoJGRpci4iLyIuJF9GSUxFU1siIi4kdGFyZ2V0RmlsZS4iIl1bJ25hbWUnXSwgb2N0ZGVjKCcwJy4kY29uZmlnWydkZWZhdWx0X3VwbG9hZF9wZXJtaXNzaW9uJ10pKTsNCgkJJHdvcmsgPSBuZXcgSW1nUmVzaXplcigkZGlyLiIvIi4kX0ZJTEVTWyIiLiR0YXJnZXRGaWxlLiIiXVsnbmFtZSddKTsNCgkJJHdvcmsgLT4gcmVzaXplKCRyZXNpemVBdCwgJGRpci4iLyIuJF9GSUxFU1siIi4kdGFyZ2V0RmlsZS4iIl1bJ25hbWUnXSwgJHFsdCk7DQoJCQkJCQkkcHBibS0+RmlyZURlYnVnKCdtZXNzYWdlJywgJyRsb3FsdGNhOiAnLiRxbHQpOw0KCQkJCQkJJHBwYm0tPkZpcmVEZWJ1ZygnbWVzc2FnZScsICckcmVzaXplQXQ6ICcuJHJlc2l6ZUF0KTsNCgkJJGxvY2E9JHVybC4kcmVsZGlyLiIvIi4kX0ZJTEVTWyIiLiR0YXJnZXRGaWxlLiIiXVsnbmFtZSddOw0KCQkJCQkJJHBwYm0tPkZpcmVEZWJ1ZygnbWVzc2FnZScsICckbG9jYTogJy4kbG9jYSk7DQoJCSRwcGJtLT5TZXRQcmVmZXJlbmNlKHN0cl9yZXBsYWNlKCJtMV8iLCAiIiwgJHRhcmdldEZpbGUpLCAkbG9jYSk7DQoJfQ0KfQ0KDQpmdW5jdGlvbiBkZWxwaG90bygkZGlyLCRvbil7DQoJZ2xvYmFsICRnQ21zOw0KCSRwcGJtPSYkZ0Ntcy0+bW9kdWxlc1snUGF5UGFsQnV0dG9uTWFrZXInXVsnb2JqZWN0J107DQoJJGluZm8gPSBwYXRoaW5mbygkZGlyKTsNCgkkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOw0KCSRkaXIgPSAkY29uZmlnWyJpbWFnZV91cGxvYWRzX3BhdGgiXTsNCgl1bmxpbmsoJGRpci4nL1BQQk0vJy4kaW5mb1snYmFzZW5hbWUnXSk7DQoJDQoJJHBwYm0tPkZpcmVEZWJ1ZygnbWVzc2FnZScsICdkZWxldGVkICcuJGRpci4nL1BQQk0vJy4kaW5mb1snYmFzZW5hbWUnXSk7DQoJJHBwYm0tPlNldFByZWZlcmVuY2UoJG9uLCAnJyk7DQoJJHBwYm0tPkZpcmVEZWJ1ZygnbWVzc2FnZScsICdpbWFnZV91cmwgUHJlZmVyZW5jZSAnLiRwcGJtLT5HZXRQcmVmZXJlbmNlKCRvbikpOw0KfSANCg0KaWYoJHBhcmFtc1snaW1hZ2VfdXJsX2NsZWFyJ109PTEpew0KCWRlbHBob3RvKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV91cmwnKSwnaW1hZ2VfdXJsJyk7CQ0KfQ0KDQppZigkcGFyYW1zWydjcHBfaGVhZGVyX2ltYWdlX2NsZWFyJ109PTEpew0KCWRlbHBob3RvKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyX2ltYWdlJyksJ2NwcF9oZWFkZXJfaW1hZ2UnKTsJDQp9DQoNCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2ludGVybmFsJywgJHBhcmFtc1snaW50ZXJuYWwnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnRm9ybUtleScsICRwYXJhbXNbJ0Zvcm1LZXknXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnRm9ybVZhbHVlJywgJHBhcmFtc1snRm9ybVZhbHVlJ10pOw0KaWYoaXNzZXQoJF9GSUxFU1snbTFfY3BwX2hlYWRlcl9pbWFnZSddKSYmKCRfRklMRVNbJ20xX2NwcF9oZWFkZXJfaW1hZ2UnXSE9JycpKXsNCgkvLyR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCdtYWRlIGl0Jyk7DQoJdXBsb2FkSW1hZ2UoOTAsJ20xX2NwcF9oZWFkZXJfaW1hZ2UnLDQxKTsNCn0NCgkJCQkJLy8kdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnZmlsZTogJy4kX0ZJTEVTWyJtMV9jcHBfaGVhZGVyX2ltYWdlIl1bIm5hbWUiXSk7DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyYmFja19jb2xvcicsIHN0cl9yZXBsYWNlKCIjIiwgIiIsICRwYXJhbXNbJ2NwcF9oZWFkZXJiYWNrX2NvbG9yJ10pKTsNCg0KaWYoaXNzZXQoJF9GSUxFU1snbTFfaW1hZ2VfdXJsJ10pJiYoJF9GSUxFU1snbTFfaW1hZ2VfdXJsJ10hPScnKSl7DQoJCQkJCS8vJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJ21hZGUgaXQnKTsNCgl1cGxvYWRJbWFnZSg1MCwnbTFfaW1hZ2VfdXJsJyw0MSk7DQp9DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdidXNpbmVzc05hbWUnLCAkcGFyYW1zWydidXNpbmVzc05hbWUnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnU0FOREJPWF9idXNpbmVzc05hbWUnLCAkcGFyYW1zWydTQU5EQk9YX2J1c2luZXNzTmFtZSddKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdTQU5EQk9YX3BlcnNvbmFsTmFtZScsICRwYXJhbXNbJ1NBTkRCT1hfcGVyc29uYWxOYW1lJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ1NBTkRCT1hfYnVzaW5lc3NQQVNTJywgJHBhcmFtc1snU0FOREJPWF9idXNpbmVzc1BBU1MnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnU0FOREJPWF9wZXJzb25hbFBBU1MnLCAkcGFyYW1zWydTQU5EQk9YX3BlcnNvbmFsUEFTUyddKTsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdMYW5nJywgJHBhcmFtc1snTGFuZyddKTsNCg0KDQokcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7DQoNCiRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ29wdGlvbnN1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdvcHRpb25zJyk7DQokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/action.save_BNToptions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oICdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycgKSApDQp7DQogIHJldHVybjsNCn0NCg0KDQoNCg0KY2xhc3MgSW1nUmVzaXplciB7DQoJcHJpdmF0ZSAkb3JpZ2luYWxGaWxlID0gJyc7DQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcmlnaW5hbEZpbGUgPSAnJykgew0KCQkkdGhpcyAtPiBvcmlnaW5hbEZpbGUgPSAkb3JpZ2luYWxGaWxlOw0KCX0NCglwdWJsaWMgZnVuY3Rpb24gcmVzaXplKCRuZXdXaWR0aCwgJHRhcmdldEZpbGUsICRxbHQpIHsNCgkJaWYgKGVtcHR5KCRuZXdXaWR0aCkgfHwgZW1wdHkoJHRhcmdldEZpbGUpKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJJHNyYyA9IGltYWdlY3JlYXRlZnJvbWpwZWcoJHRoaXMgLT4gb3JpZ2luYWxGaWxlKTsNCgkJbGlzdCgkd2lkdGgsICRoZWlnaHQpID0gZ2V0aW1hZ2VzaXplKCR0aGlzIC0+IG9yaWdpbmFsRmlsZSk7DQoJCSRuZXdIZWlnaHQgPSAoJGhlaWdodCAvICR3aWR0aCkgKiAkbmV3V2lkdGg7DQoJCSR0bXAgPSBpbWFnZWNyZWF0ZXRydWVjb2xvcigkbmV3V2lkdGgsICRuZXdIZWlnaHQpOw0KCQlpbWFnZWNvcHlyZXNhbXBsZWQoJHRtcCwgJHNyYywgMCwgMCwgMCwgMCwgJG5ld1dpZHRoLCAkbmV3SGVpZ2h0LCAkd2lkdGgsICRoZWlnaHQpOw0KCQlpZiAoZmlsZV9leGlzdHMoJHRhcmdldEZpbGUpKSB7DQoJCQl1bmxpbmsoJHRhcmdldEZpbGUpOw0KCQl9DQoJCWltYWdlanBlZygkdG1wLCAkdGFyZ2V0RmlsZSwgJHFsdCk7IC8vIDQxIGlzIG15IGNob2ljZSwgbWFrZSBpdCBiZXR3ZWVuIDAgliAxMDAgZm9yIG91dHB1dCBpbWFnZSBxdWFsaXR5IHdpdGggMTAwIGJlaW5nIHRoZSBtb3N0IGx1eHVyaW91cw0KCX0NCn0NCg0KZnVuY3Rpb24gdXBsb2FkSW1hZ2UoJG5ld1dpZHRoLCAkdGFyZ2V0RmlsZSwkcWx0KXsNCglnbG9iYWwgJGdDbXM7DQoJJHBwYm09JiRnQ21zLT5tb2R1bGVzWydQYXlQYWxCdXR0b25NYWtlciddWydvYmplY3QnXTsNCgkkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOw0KCSRkaXIgPSAkY29uZmlnWyJpbWFnZV91cGxvYWRzX3BhdGgiXTsNCgkkdXJsID0gJGNvbmZpZ1siaW1hZ2VfdXBsb2Fkc191cmwiXTsNCgkkUnVybCA9ICRjb25maWdbInJvb3RfdXJsIl07DQoJJHJlc2l6ZUF0PSRuZXdXaWR0aDsNCg0KCSRyZWxkaXIgPSAiL1BQQk0iOw0KCWlmICghaXNzZXQoJElNQ29uZmlnWyd0aHVtYm5haWxfZGlyJ10pKSAkSU1Db25maWdbJ3RodW1ibmFpbF9kaXInXSA9ICcnOw0KCWlmIChpc3NldCgkX1BPU1RbJ3JlbGRpciddKSkgJHJlbGRpciA9ICRfUE9TVFsncmVsZGlyJ107DQoJZWxzZSBpZiAoaXNzZXQoJF9HRVRbJ3JlbGRpciddKSkgJHJlbGRpciA9ICRfR0VUWydyZWxkaXInXTsNCglpZighZmlsZV9leGlzdHMoJGRpci4iL1BQQk0iKSl7DQoJCQkJbWtkaXIoJGRpci4iL1BQQk0iLCAwNzc3KTsNCgkJCQlhdWRpdCgtMSwgJGRpci4iLyIuJHJlbGRpciwgJ0NyZWF0ZWQgRGlyZWN0b3J5Jyk7DQoJCQkJDQoJfQ0KDQoJaWYoIWZpbGVfZXhpc3RzKCRkaXIuIi8iLiRyZWxkaXIpKXsNCgkNCgkJCQlta2RpcigkZGlyLiIvIi4kcmVsZGlyLCAwNzc3KTsNCgkJCQlhdWRpdCgtMSwgJGRpci4iLyIuJHJlbGRpciwgJ0NyZWF0ZWQgRGlyZWN0b3J5Jyk7DQoJfQ0KCQ0KCQ0KCWlmIChzdHJwb3MoJHJlbGRpciwgJy4uJykgPT09IGZhbHNlICYmIHN0cnBvcygkcmVsZGlyLCAnXFwnKSA9PT0gZmFsc2Upew0KCQkkZGlyIC49ICRyZWxkaXI7DQoJfQ0KCQ0KCQ0KCWlmICghbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbIiIuJHRhcmdldEZpbGUuIiJdWyd0bXBfbmFtZSddLCAkZGlyLiIvIi4kX0ZJTEVTWyIiLiR0YXJnZXRGaWxlLiIiXVsnbmFtZSddKSl7DQoJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ2ZpbGVub3R1cGxvYWRlZCcpLiI8L2xpPiI7DQoJCQkJCQkkcHBibS0+RmlyZURlYnVnKCdlcnJvcicsJGVycm9ycyk7DQoJfWVsc2V7DQoJCWNobW9kKCRkaXIuIi8iLiRfRklMRVNbIiIuJHRhcmdldEZpbGUuIiJdWyduYW1lJ10sIG9jdGRlYygnMCcuJGNvbmZpZ1snZGVmYXVsdF91cGxvYWRfcGVybWlzc2lvbiddKSk7DQoJCSR3b3JrID0gbmV3IEltZ1Jlc2l6ZXIoJGRpci4iLyIuJF9GSUxFU1siIi4kdGFyZ2V0RmlsZS4iIl1bJ25hbWUnXSk7DQoJCSR3b3JrIC0+IHJlc2l6ZSgkcmVzaXplQXQsICRkaXIuIi8iLiRfRklMRVNbIiIuJHRhcmdldEZpbGUuIiJdWyduYW1lJ10sICRxbHQpOw0KCQkJCQkJJHBwYm0tPkZpcmVEZWJ1ZygnbWVzc2FnZScsICckbG9xbHRjYTogJy4kcWx0KTsNCgkJCQkJCSRwcGJtLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCAnJHJlc2l6ZUF0OiAnLiRyZXNpemVBdCk7DQoJCSRsb2NhPSR1cmwuJHJlbGRpci4iLyIuJF9GSUxFU1siIi4kdGFyZ2V0RmlsZS4iIl1bJ25hbWUnXTsNCgkJCQkJCSRwcGJtLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCAnJGxvY2E6ICcuJGxvY2EpOw0KCQkkcHBibS0+U2V0UHJlZmVyZW5jZShzdHJfcmVwbGFjZSgibTFfIiwgIiIsICR0YXJnZXRGaWxlKSwgJGxvY2EpOw0KDQoJfQ0KfQ0KDQpmdW5jdGlvbiBkZWxwaG90bygkZGlyLCRvbil7DQoJZ2xvYmFsICRnQ21zOw0KCSRwcGJtPSYkZ0Ntcy0+bW9kdWxlc1snUGF5UGFsQnV0dG9uTWFrZXInXVsnb2JqZWN0J107DQoJJGluZm8gPSBwYXRoaW5mbygkZGlyKTsNCgkkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOw0KCSRkaXIgPSAkY29uZmlnWyJpbWFnZV91cGxvYWRzX3BhdGgiXTsNCgl1bmxpbmsoJGRpci4nL1BQQk0vJy4kaW5mb1snYmFzZW5hbWUnXSk7DQoJDQoJJHBwYm0tPkZpcmVEZWJ1ZygnbWVzc2FnZScsICdkZWxldGVkICcuJGRpci4nL1BQQk0vJy4kaW5mb1snYmFzZW5hbWUnXSk7DQoJJHBwYm0tPlNldFByZWZlcmVuY2UoJG9uLCAnJyk7DQoJJHBwYm0tPkZpcmVEZWJ1ZygnbWVzc2FnZScsICdpbWFnZV91cmwgUHJlZmVyZW5jZSAnLiRwcGJtLT5HZXRQcmVmZXJlbmNlKCRvbikpOw0KfSANCg0KDQovL2lmKCRwYXJhbXNbJ2ltYWdlX3VybF9jbGVhciddPT0xKXsNCi8vCWRlbHBob3RvKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV91cmwnKSwnaW1hZ2VfdXJsJyk7CQ0KLy99DQoNCi8vaWYoaXNzZXQoJF9GSUxFU1snbTFfY3BwX2hlYWRlcl9pbWFnZSddKSYmKCRfRklMRVNbJ20xX2NwcF9oZWFkZXJfaW1hZ2UnXSE9JycpKXsNCi8vCS8vJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJ21hZGUgaXQnKTsNCi8vCXVwbG9hZEltYWdlKDkwLCdtMV9jcHBfaGVhZGVyX2ltYWdlJyw0MSk7DQovL30NCgkJCQkJLy8kdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnZmlsZTogJy4kX0ZJTEVTWyJtMV9jcHBfaGVhZGVyX2ltYWdlIl1bIm5hbWUiXSk7DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdSZWRpcmVjdFVSTCcsICRwYXJhbXNbJ1JlZGlyZWN0VVJMJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NhbmNlbF9yZXR1cm4nLCAkcGFyYW1zWydjYW5jZWxfcmV0dXJuJ10pOw0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vX3NoaXBwaW5nJywgJHBhcmFtc1snbm9fc2hpcHBpbmcnXSk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbm90aWZ5X3VybCcsICRwYXJhbXNbJ25vdGlmeV91cmwnXSk7DQoNCg0KJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpOw0KDQokcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdvcHRpb25zdXBkYXRlZCcsICdhY3RpdmVfdGFiJyA9PiAnYnRub3B0aW9ucycpOw0KJHRoaXMtPlJlZGlyZWN0KCRpZCwgJ2RlZmF1bHRhZG1pbicsICcnLCAkcGFyYW1zKTsNCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/action.save_BTN.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9DYXJzLw0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkNCiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3INCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCiMNCiMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mDQojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUNCiMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0ENCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTA0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7DQpnbG9iYWwgJGdDbXM7DQoNCg0KaWYoaXNzZXQoJHBhcmFtc1snY2FuY2VsJ10pKXsNCgkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdDYW5jZWxlZCcsICdhY3RpdmVfdGFiJyA9PiAnZW1haWxfdGVtcGxhdGUnKTsNCgkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOw0KICB9ZWxzZXsNCglpZigkcGFyYW1zWydtb2RlJ109PSdhZGQnKXsNCgkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQnRuQURERUQnLCAnYWN0aXZlX3RhYicgPT4gJ2VtYWlsX3RlbXBsYXRlJyk7DQoJfWVsc2V7DQoJCSRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ0J0bkVESVRFRCcsICdhY3RpdmVfdGFiJyA9PiAnZW1haWxfdGVtcGxhdGUnKTsNCgl9DQp9DQoNCiRkYiA9JiAkdGhpcy0+R2V0RGIoKTsNCg0KCQ0KCQ0KLy8vLw0KLy8gQ3JlYXQgYnRuIHRhYmxlDQovLy8vDQoNCgkkYW1vdW50PSRfUE9TVFsnbTFfYW1vdW50J107DQoJJEJ1dHRvbkltZz0kX1BPU1RbJ20xX0J1dHRvbkltZyddOw0KCSRpdGVtX25hbWU9JF9QT1NUWydtMV9pdGVtX25hbWUnXTsNCgkkQnRuVHlwZT0kX1BPU1RbJ20xX0J0blR5cGUnXTsNCgkkaXRlbV9udW1iZXI9JF9QT1NUWydtMV9pdGVtX251bWJlciddOw0KCSRxdWFudGl0eT0kX1BPU1RbJ20xX3F1YW50aXR5J107DQoJJFVwZ3JhZGVNRVNTPSRfUE9TVFsnbTFfVXBncmFkZU1FU1MnXTsNCgkkVGhlQWN0aW9uPSRfUE9TVFsnbTFfVGhlQWN0aW9uJ107DQoJJFRoZVBhcmFtcz0kX1BPU1RbJ20xX1RoZVBhcmFtcyddOw0KCQ0KDQoJDQoNCg0KLy8kdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsJHNydCk7DQovLyR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywkX1BPU1RbJ20xX21vZGUnXSk7DQoJCQlpZigkX1BPU1RbJ20xX21vZGUnXT09J2FkZCcpew0KDQoJCQkJDQoJCQkJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG4gU0VUIEJLU2V0PSciLiRfUE9TVFsnbTFfQktTZXQnXS4iJyI7DQogICAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KICAgICAgICAgICAgICAgICAgICAgICAgaWYoISRyZXN1bHQpIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgLy9lY2hvICdFcnJvcjogJy5teXNxbF9lcnJvcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7DQogICAgICAgICAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCAoSUQsIGFtb3VudCwgQnV0dG9uSW1nLCBpdGVtX25hbWUsIEJ0blR5cGUsIGl0ZW1fbnVtYmVyLCBxdWFudGl0eSwgVXBncmFkZU1FU1MsIFRoZUFjdGlvbiwgVGhlUGFyYW1zKSBWQUxVRVMgKCBMQVNUX0lOU0VSVF9JRCgpLCciLiRhbW91bnQuIicsJyIuJEJ1dHRvbkltZy4iJywnIi4kaXRlbV9uYW1lLiInLCciLiRCdG5UeXBlLiInLCciLiRpdGVtX251bWJlci4iJywnIi4kcXVhbnRpdHkuIicsJyIuJFVwZ3JhZGVNRVNTLiInLCciLiRUaGVBY3Rpb24uIicsJyIuJFRoZVBhcmFtcy4iJykiOw0KDQogICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSk7DQogICAgICAgICAgICAgICAgICAgICAgICBpZighJHJlc3VsdCkgew0KICAgICAgICAgICAgICAgICAgICAgICAgICAvL2VjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQogICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7DQogICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsNCiAgICAgICAgICAgICAgICAgICAgICAgIH0NCgkJCQkvLyR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCdlY2hvOi0tLS0tLS0tLS0tLS0tLScuJHNydCk7DQoJCQl9ZWxzZSBpZigkX1BPU1RbJ20xX21vZGUnXT09J2VkaXQnKXsNCgkJCQkJCQkvLyRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQgTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG5fT1BUIE9OICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG4uSUQgPSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX1BQQk1fQnRuX09QVC5JRCBTRVQgYW1vdW50PSciLiRhbW91bnQuIicsQnV0dG9uSW1nPSciLiRCdXR0b25JbWcuIicsaXRlbV9uYW1lPSciLiRpdGVtX25hbWUuIicsQnRuVHlwZT0nIi4kQnRuVHlwZS4iJyxpdGVtX251bWJlcj0nIi4kaXRlbV9udW1iZXIuIicscXVhbnRpdHk9JyIuJHF1YW50aXR5LiInIFdIRVJFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG4uQktTZXQ9JyUiLiRfUE9TVFsnQktTZXQnXS4iJSciOw0KLy8kcXVlcnkgPSAiVVBEQVRFICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIHAiDQovLy4iLCAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuIHBwICINCi8vLiJTRVQgcC5hbW91bnQ9JyIuJGFtb3VudA0KLy8gIC4iJywgcC5CdXR0b25JbWc9JyIubXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nKCRCdXR0b25JbWcpIA0KLy8gIC4iJywgcC5pdGVtX25hbWU9JyIuJGl0ZW1fbmFtZQ0KLy8gIC4iJywgcC5CdG5UeXBlPSciLiRCdG5UeXBlDQovLyAgLiInLCBwLml0ZW1fbnVtYmVyPSciLiRpdGVtX251bWJlcg0KLy8gIC4iJywgcC5xdWFudGl0eT0nIi4kcXVhbnRpdHkNCi8vICAuIicgV0hFUkUgcHAuQktTZXQ9JyIuJF9QT1NUWydtMV9CS1NldCddLiInIg0KLy8gIC4iIEFORCBwLklEPXBwLklEIjsNCiAgDQogICRxdWVyeSA9ICJVUERBVEUgIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQgbyAiDQouIklOTkVSIGpvaW4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0biBiICINCi4iT04gYi5JRCA9IG8uSUQgIg0KLiIgU0VUIG8uYW1vdW50PSciLiRhbW91bnQNCiAgLiInLCBvLkJ1dHRvbkltZz0nIi4kQnV0dG9uSW1nDQogIC4iJywgby5pdGVtX25hbWU9JyIuJGl0ZW1fbmFtZQ0KICAuIicsIG8uQnRuVHlwZT0nIi4kQnRuVHlwZQ0KICAuIicsIG8uaXRlbV9udW1iZXI9JyIuJGl0ZW1fbnVtYmVyDQogIC4iJywgby5xdWFudGl0eT0nIi4kcXVhbnRpdHkNCiAgLiInLCBvLlVwZ3JhZGVNRVNTPSciLiRVcGdyYWRlTUVTUw0KICAuIicsIG8uVGhlQWN0aW9uPSciLiRUaGVBY3Rpb24NCiAgLiInLCBvLlRoZVBhcmFtcz0nIi4kVGhlUGFyYW1zDQogIC4iJyBXSEVSRSBiLkJLU2V0PSciLiRfUE9TVFsnbTFfQktTZXQnXS4iJyI7DQoNCiAgIA0KICAgDQogICANCg0KJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJyRhbW91bnQgOiAnLiRhbW91bnQpOwkNCiR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCckQnV0dG9uSW1nIDogJy4kQnV0dG9uSW1nKTsJDQokdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnJGl0ZW1fbmFtZSA6ICcuJGl0ZW1fbmFtZSk7CQ0KJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJyRCdG5UeXBlIDogJy4kQnRuVHlwZSk7CQ0KJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJyRpdGVtX251bWJlciA6ICcuJGl0ZW1fbnVtYmVyKTsJDQokdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnJHF1YW50aXR5IDogJy4kcXVhbnRpdHkpOwkNCiR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCdtMV9tb2RlIDogJy4kX1BPU1RbJ20xX21vZGUnXSk7DQoJCQkJCQkJLy8kdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnZWNobzotLS0tLS0tLS0tLS0tLS0nLiRzcnQpOw0KCQkJCQkJCQkJCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KCQkJCQkJCWlmKCEkcmVzdWx0KSB7DQoJCQkJCQkJICAvL2VjaG8gJ0Vycm9yOiAnLm15c3FsX2Vycm9yKCk7DQoJCQkJCQkJICAkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOw0KCQkJCQkJCSAgLy8kdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsbXlzcWxfZXJyb3IoKSk7DQoJCQkJCQkJfWVsc2V7DQoJCQkJCQkJICAgJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpOw0KCQkJCQkJCX0NCgkJCQkJCQkvLyR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywkX1BPU1RbJ20xX21vZGUnXSk7DQoJCQl9DQoJCQ0KDQoNCg0KLy8kcGFyYW1zWydzcnQnXSA9ICRzcnQ7DQogICAgLy8gdG8gY2FsbCBhbm90aGVyIG1ldGhvZCBvZiB0aGUgbW9kdWxlLCB5b3UgaGF2ZSB0byBiZSBjYXJlZnVsIG5vdyB0aGF0DQogICAgLy8gbWV0aG9kcyBjYW4gYmUgc3BsaXQgaW50byBvdGhlciBmaWxlcy4gSGVyZSdzIHRoZSBwcmVmZXJlZCBhcHByb2FjaDoNCiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/CSS/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/farbtastic.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqDQogKiBGYXJidGFzdGljIENvbG9yIFBpY2tlciAxLjINCiAqIMKpIDIwMDggU3RldmVuIFdpdHRlbnMNCiAqDQogKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQogKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KICoNCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQogKg0KICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0ENCiAqLw0KLmZhcmJ0YXN0aWMgew0KICBwb3NpdGlvbjogcmVsYXRpdmU7DQp9DQouZmFyYnRhc3RpYyAqIHsNCiAgcG9zaXRpb246IGFic29sdXRlOw0KICBjdXJzb3I6IGNyb3NzaGFpcjsNCn0NCi5mYXJidGFzdGljLCAuZmFyYnRhc3RpYyAud2hlZWwgew0KICB3aWR0aDogMTk1cHg7DQogIGhlaWdodDogMTk1cHg7DQp9DQouZmFyYnRhc3RpYyAuY29sb3IsIC5mYXJidGFzdGljIC5vdmVybGF5IHsNCiAgdG9wOiA0N3B4Ow0KICBsZWZ0OiA0N3B4Ow0KICB3aWR0aDogMTAxcHg7DQogIGhlaWdodDogMTAxcHg7DQp9DQouZmFyYnRhc3RpYyAud2hlZWwgew0KICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3doZWVsLnBuZykgbm8tcmVwZWF0Ow0KICB3aWR0aDogMTk1cHg7DQogIGhlaWdodDogMTk1cHg7DQp9DQouZmFyYnRhc3RpYyAub3ZlcmxheSB7DQogIGJhY2tncm91bmQ6IHVybCguLi9pbWFnZXMvbWFzay5wbmcpIG5vLXJlcGVhdDsNCn0NCi5mYXJidGFzdGljIC5tYXJrZXIgew0KICB3aWR0aDogMTdweDsNCiAgaGVpZ2h0OiAxN3B4Ow0KICBtYXJnaW46IC04cHggMCAwIC04cHg7DQogIG92ZXJmbG93OiBoaWRkZW47IA0KICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hcmtlci5wbmcpIG5vLXJlcGVhdDsNCn0NCg0K]]></data>
	</file>
	<file>
	  <filename>/CSS/MasterCSS.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGNoYXJzZXQgInV0Zi04IjsNCi8qIENTUyBEb2N1bWVudCAqLw0KDQogYi5yYm90dG9tIHsNCmRpc3BsYXk6YmxvY2s7DQp9DQogYi5yYm90dG9tICogew0KYmFja2dyb3VuZDojQThCN0M2IG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7DQpkaXNwbGF5OmJsb2NrOw0KaGVpZ2h0OjFweDsNCm92ZXJmbG93OmhpZGRlbjsNCn0NCiBiLnIxIHsNCmJhY2tncm91bmQ6IzAwMDAwMCBub25lIHJlcGVhdCBzY3JvbGwgMCAwOw0KbWFyZ2luOjAgNXB4Ow0KfQ0KIGIucjIgew0KbWFyZ2luOjAgM3B4Ow0KfQ0KIGIucjMgew0KbWFyZ2luOjAgMnB4Ow0KfQ0KIGIucjQgew0KaGVpZ2h0OjJweDsNCm1hcmdpbjowIDFweDsNCn0NCi5TaW1jb257DQoJcGFkZGluZzogMTBweDsNCglib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAjMDAwOw0KCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzAwMDsNCglib3JkZXItdG9wLXN0eWxlOiBub25lOw0KCWJvcmRlci1ib3R0b20tc3R5bGU6IG5vbmU7DQoJYmFja2dyb3VuZC1jb2xvcjojQThCN0M2Ow0KfQ0KLlNpbVdyYXB7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgfQ0KLmNvZGVISUdITElHSFR7Y29sb3I6IzM1NGQ1ODsgZm9udC1zaXplOjE0cHg7IGZvbnQtd2VpZ2h0OjYwMDsgbGluZS1oZWlnaHQ6MTVweDt9DQpkaXYucGFnZWNvbnRhaW5lciAucGFnZWhlYWRlciB7Y29sb3I6IzM1NGQ1ODsgZm9udC1zaXplOjI0cHg7IGZvbnQtd2VpZ2h0OjYwMDsgbGluZS1oZWlnaHQ6MTVweDt9DQoNCmRpdi5wYWdlY29udGFpbmVyIC5wYWdlaGVhZGVyIHNwYW4uaGVscHRleHR7DQoJZm9udC1zaXplOjEycHg7IA0KCWZvbnQtd2VpZ2h0Om5vcm1hbDsNCgltYXJnaW4tdG9wOi00cHg7DQoJcGFkZGluZzoycHg7DQoJcG9zaXRpb246YWJzb2x1dGU7DQoJcmlnaHQ6MzVweDsNCgl6LWluZGV4OjEwOw0KfQ0KaHJ7DQoJZGlzcGxheTpibG9jazsNCgl9DQp0ZXh0YXJlYXsNCgl3aWR0aDoyNTBweDsNCgloZWlnaHQ6NzVweDsNCn0NCi5leHRlbmRIQU5ETEUgKiB7DQoJZGlzcGxheTppbmxpbmU7DQoJbWFyZ2luOjFlbSAwIDAuMmVtIDIwJTsNCgljdXJzb3I6cG9pbnRlcjsNCn0NCg0KLk5leHRlbmQgew0KCW1hcmdpbjoxZW0gMCAwLjJlbSAyMCU7DQoJcG9zaXRpb246IHJlbGF0aXZlOw0KfQ0KLk5leHRlbmQgew0KCWRpc3BsYXk6bm9uZTsNCn0NCg0KLlRyYW5zbGF0ZUNvbiB7DQoJYmFja2dyb3VuZC1jb2xvcjojRkZGRkZGOw0KCWJvcmRlcjoycHggc29saWQgIzAwMDAwMDsNCglwb3NpdGlvbjphYnNvbHV0ZTsNCgl3aWR0aDoxOTVweDsNCgl6LWluZGV4OjcwMDsNCn0NCi5jb250cnlDb2Rlc3sNCgl3aWR0aDozNTBweDsNCgloZWlnaHQ6MTUwcHg7DQoJb3ZlcmZsb3c6c2Nyb2xsOw0KCWJvcmRlcjogbWVkaXVtIGluc2V0ICMzMzM7DQoJYmFja2dyb3VuZC1jb2xvcjojQ0NDOw0KCXBhZGRpbmc6MTBweDsNCglsaW5lLWhlaWdodDoyMHB4Ow0KfQ==]]></data>
	</file>
	<file>
	  <filename>/function.admin_ACToptionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7DQoNCgkkTGFuZ0FycmF5PWFycmF5KA0KCQknVU5JVEVEIFNUQVRFUyc9PidVUycsJ1VOSVRFRCBTVEFURVMgTUlOT1IgT1VUTFlJTkcgSVNMQU5EUyc9PidVTScsJ0FGR0hBTklTVEFOJz0+J0FGJywnQUxBTkQgSVNMQU5EUyc9PidBWCcsJ0FMQkFOSUEnPT4nQUwnLCdBTEdFUklBJz0+J0RaJywnQU1FUklDQU4gU0FNT0EnPT4nQVMnLCdBTkRPUlJBJz0+J0FEJywnQU5HT0xBJz0+J0FPJywnQU5HVUlMTEEnPT4nQUknLCdBTlRBUkNUSUNBJz0+J0FRJywnQU5USUdVQSBBTkQgQkFSQlVEQSc9PidBRycsJ0FSR0VOVElOQSc9PidBUicsJ0FSTUVOSUEnPT4nQU0nLCdBUlVCQSc9PidBVycsJ0FVU1RSQUxJQSc9PidBVScsJ0FVU1RSSUEnPT4nQVQnLCdBWkVSQkFJSkFOJz0+J0FaJywnQkFIQU1BUyc9PidCUycsJ0JBSFJBSU4nPT4nQkgnLCdCQU5HTEFERVNIJz0+J0JEJywnQkFSQkFET1MnPT4nQkInLCdCRUxBUlVTJz0+J0JZJywnQkVMR0lVTSc9PidCRScsJ0JFTElaRSc9PidCWicsJ0JFTklOJz0+J0JKJywnQkVSTVVEQSc9PidCTScsJ0JIVVRBTic9PidCVCcsJ0JPTElWSUEnPT4nQk8nLCdCT1NOSUEgQU5EIEhFUlpFR09WSU5BJz0+J0JBJywnQk9UU1dBTkEnPT4nQlcnLCdCT1VWRVQgSVNMQU5EJz0+J0JWJywnQlJBWklMJz0+J0JSJywnQlJJVElTSCBJTkRJQU4gT0NFQU4gVEVSUklUT1JZJz0+J0lPJywnQlJVTkVJIERBUlVTU0FMQU0nPT4nQk4nLCdCVUxHQVJJQSc9PidCRycsJ0JVUktJTkEgRkFTTyc9PidCRicsJ0JVUlVOREknPT4nQkknLCdDQU1CT0RJQSc9PidLSCcsJ0NBTUVST09OJz0+J0NNJywnQ0FOQURBJz0+J0NBJywnQ0FQRSBWRVJERSc9PidDVicsJ0NBWU1BTiBJU0xBTkRTJz0+J0tZJywnQ0VOVFJBTCBBRlJJQ0FOIFJFUFVCTElDJz0+J0NGJywnQ0hBRCc9PidURCcsJ0NISUxFJz0+J0NMJywnQ0hJTkEnPT4nQ04nLCdDSFJJU1RNQVMgSVNMQU5EJz0+J0NYJywnQ09DT1MgKEtFRUxJTkcpIElTTEFORFMnPT4nQ0MnLCdDT0xPTUJJQSc9PidDTycsJ0NPTU9ST1MnPT4nS00nLCdDT05HTyc9PidDRycsJ0NPTkdPLCBUSEUgREVNT0NSQVRJQyBSRVBVQkxJQyBPRiBUSEUnPT4nQ0QnLCdDT09LIElTTEFORFMnPT4nQ0snLCdDT1NUQSBSSUNBJz0+J0NSJywnQ09URSBEXCdJVk9JUkUnPT4nQ0knLCdDUk9BVElBJz0+J0hSJywnQ1VCQSc9PidDVScsJ0NZUFJVUyc9PidDWScsJ0NaRUNIIFJFUFVCTElDJz0+J0NaJywnREVOTUFSSyc9PidESycsJ0RKSUJPVVRJJz0+J0RKJywnRE9NSU5JQ0EnPT4nRE0nLCdET01JTklDQU4gUkVQVUJMSUMnPT4nRE8nLCdFQ1VBRE9SJz0+J0VDJywnRUdZUFQnPT4nRUcnLCdFTCBTQUxWQURPUic9PidTVicsJ0VRVUFUT1JJQUwgR1VJTkVBJz0+J0dRJywnRVJJVFJFQSc9PidFUicsJ0VTVE9OSUEnPT4nRUUnLCdFVEhJT1BJQSc9PidFVCcsJ0ZBTEtMQU5EIElTTEFORFMgKE1BTFZJTkFTKSc9PidGSycsJ0ZBUk9FIElTTEFORFMnPT4nRk8nLCdGSUpJJz0+J0ZKJywnRklOTEFORCc9PidGSScsJ0ZSQU5DRSc9PidGUicsJ0ZSRU5DSCBHVUlBTkEnPT4nR0YnLCdGUkVOQ0ggUE9MWU5FU0lBJz0+J1BGJywnRlJFTkNIIFNPVVRIRVJOIFRFUlJJVE9SSUVTJz0+J1RGJywnR0FCT04nPT4nR0EnLCdHQU1CSUEnPT4nR00nLCdHRU9SR0lBJz0+J0dFJywnR0VSTUFOWSc9PidERScsJ0dIQU5BJz0+J0dIJywnR0lCUkFMVEFSJz0+J0dJJywnR1JFRUNFJz0+J0dSJywnR1JFRU5MQU5EJz0+J0dMJywnR1JFTkFEQSc9PidHRCcsJ0dVQURFTE9VUEUnPT4nR1AnLCdHVUFNJz0+J0dVJywnR1VBVEVNQUxBJz0+J0dUJywnR1VFUk5TRVknPT4nR0cnLCdHVUlORUEnPT4nR04nLCdHVUlORUEtQklTU0FVJz0+J0dXJywnR1VZQU5BJz0+J0dZJywnSEFJVEknPT4nSFQnLCdIRUFSRCBJU0xBTkQgQU5EIE1DRE9OQUxEIElTTEFORFMnPT4nSE0nLCdIT0xZIFNFRSAoVkFUSUNBTiBDSVRZIFNUQVRFKSc9PidWQScsJ0hPTkRVUkFTJz0+J0hOJywnSE9ORyBLT05HJz0+J0hLJywnSFVOR0FSWSc9PidIVScsJ0lDRUxBTkQnPT4nSVMnLCdJTkRJQSc9PidJTicsJ0lORE9ORVNJQSc9PidJRCcsJ0lSQU4sIElTTEFNSUMgUkVQVUJMSUMgT0YnPT4nSVInLCdJUkFRJz0+J0lRJywnSVJFTEFORCc9PidJRScsJ0lTTEUgT0YgTUFOJz0+J0lNJywnSVNSQUVMJz0+J0lMJywnSVRBTFknPT4nSVQnLCdKQU1BSUNBJz0+J0pNJywnSkFQQU4nPT4nSlAnLCdKRVJTRVknPT4nSkUnLCdKT1JEQU4nPT4nSk8nLCdLQVpBS0hTVEFOJz0+J0taJywnS0VOWUEnPT4nS0UnLCdLSVJJQkFUSSc9PidLSScsJ0tPUkVBLCBERU1PQ1JBVElDIFBFT1BMRVwnUyBSRVBVQkxJQyBPRic9PidLUCcsJ0tPUkVBLCBSRVBVQkxJQyBPRic9PidLUicsJ0tVV0FJVCc9PidLVycsJ0tZUkdZWlNUQU4nPT4nS0cnLCdMQU8gUEVPUExFXCdTIERFTU9DUkFUSUMgUkVQVUJMSUMnPT4nTEEnLCdMQVRWSUEnPT4nTFYnLCdMRUJBTk9OJz0+J0xCJywnTEVTT1RITyc9PidMUycsJ0xJQkVSSUEnPT4nTFInLCdMSUJZQU4gQVJBQiBKQU1BSElSSVlBJz0+J0xZJywnTElFQ0hURU5TVEVJTic9PidMSScsJ0xJVEhVQU5JQSc9PidMVCcsJ0xVWEVNQk9VUkcnPT4nTFUnLCdNQUNBTyc9PidNTycsJ01BQ0VET05JQSwgVEhFIEZPUk1FUiBZVUdPU0xBViBSRVBVQkxJQyBPRic9PidNSycsJ01BREFHQVNDQVInPT4nTUcnLCdNQUxBV0knPT4nTVcnLCdNQUxBWVNJQSc9PidNWScsJ01BTERJVkVTJz0+J01WJywnTUFMSSc9PidNTCcsJ01BTFRBJz0+J01UJywnTUFSU0hBTEwgSVNMQU5EUyc9PidNSCcsJ01BUlRJTklRVUUnPT4nTVEnLCdNQVVSSVRBTklBJz0+J01SJywnTUFVUklUSVVTJz0+J01VJywnTUFZT1RURSc9PidZVCcsJ01FWElDTyc9PidNWCcsJ01JQ1JPTkVTSUEsIEZFREVSQVRFRCBTVEFURVMgT0YnPT4nRk0nLCdNT0xET1ZBLCBSRVBVQkxJQyBPRic9PidNRCcsJ01PTkFDTyc9PidNQycsJ01PTkdPTElBJz0+J01OJywnTU9OVFNFUlJBVCc9PidNUycsJ01PUk9DQ08nPT4nTUEnLCdNT1pBTUJJUVVFJz0+J01aJywnTVlBTk1BUic9PidNTScsJ05BTUlCSUEnPT4nTkEnLCdOQVVSVSc9PidOUicsJ05FUEFMJz0+J05QJywnTkVUSEVSTEFORFMnPT4nTkwnLCdORVRIRVJMQU5EUyBBTlRJTExFUyc9PidBTicsJ05FVyBDQUxFRE9OSUEnPT4nTkMnLCdORVcgWkVBTEFORCc9PidOWicsJ05JQ0FSQUdVQSc9PidOSScsJ05JR0VSJz0+J05FJywnTklHRVJJQSc9PidORycsJ05JVUUnPT4nTlUnLCdOT1JGT0xLIElTTEFORCc9PidORicsJ05PUlRIRVJOIE1BUklBTkEgSVNMQU5EUyc9PidNUCcsJ05PUldBWSc9PidOTycsJ09NQU4nPT4nT00nLCdQQUtJU1RBTic9PidQSycsJ1BBTEFVJz0+J1BXJywnUEFMRVNUSU5JQU4gVEVSUklUT1JZLCBPQ0NVUElFRCc9PidQUycsJ1BBTkFNQSc9PidQQScsJ1BBUFVBIE5FVyBHVUlORUEnPT4nUEcnLCdQQVJBR1VBWSc9PidQWScsJ1BFUlUnPT4nUEUnLCdQSElMSVBQSU5FUyc9PidQSCcsJ1BJVENBSVJOJz0+J1BOJywnUE9MQU5EJz0+J1BMJywnUE9SVFVHQUwnPT4nUFQnLCdQVUVSVE8gUklDTyc9PidQUicsJ1FBVEFSJz0+J1FBJywnUkVVTklPTic9PidSRScsJ1JPTUFOSUEnPT4nUk8nLCdSVVNTSUFOIEZFREVSQVRJT04nPT4nUlUnLCdSV0FOREEnPT4nUlcnLCdTQUlOVCBIRUxFTkEnPT4nU0gnLCdTQUlOVCBLSVRUUyBBTkQgTkVWSVMnPT4nS04nLCdTQUlOVCBMVUNJQSc9PidMQycsJ1NBSU5UIFBJRVJSRSBBTkQgTUlRVUVMT04nPT4nUE0nLCdTQUlOVCBWSU5DRU5UIEFORCBUSEUgR1JFTkFESU5FUyc9PidWQycsJ1NBTU9BJz0+J1dTJywnU0FOIE1BUklOTyc9PidTTScsJ1NBTyBUT01FIEFORCBQUklOQ0lQRSc9PidTVCcsJ1NBVURJIEFSQUJJQSc9PidTQScsJ1NFTkVHQUwnPT4nU04nLCdTRVJCSUEgQU5EIE1PTlRFTkVHUk8nPT4nQ1MnLCdTRVlDSEVMTEVTJz0+J1NDJywnU0lFUlJBIExFT05FJz0+J1NMJywnU0lOR0FQT1JFJz0+J1NHJywnU0xPVkFLSUEnPT4nU0snLCdTTE9WRU5JQSc9PidTSScsJ1NPTE9NT04gSVNMQU5EUyc9PidTQicsJ1NPTUFMSUEnPT4nU08nLCdTT1VUSCBBRlJJQ0EnPT4nWkEnLCdTT1VUSCBHRU9SR0lBIEFORCBUSEUgU09VVEggU0FORFdJQ0ggSVNMQU5EUyc9PidHUycsJ1NQQUlOJz0+J0VTJywnU1JJIExBTktBJz0+J0xLJywnU1VEQU4nPT4nU0QnLCdTVVJJTkFNRSc9PidTUicsJ1NWQUxCQVJEIEFORCBKQU4gTUFZRU4nPT4nU0onLCdTV0FaSUxBTkQnPT4nU1onLCdTV0VERU4nPT4nU0UnLCdTV0lUWkVSTEFORCc9PidDSCcsJ1NZUklBTiBBUkFCIFJFUFVCTElDJz0+J1NZJywnVEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQSc9PidUVycsJ1RBSklLSVNUQU4nPT4nVEonLCdUQU5aQU5JQSwgVU5JVEVEIFJFUFVCTElDIE9GJz0+J1RaJywnVEhBSUxBTkQnPT4nVEgnLCdUSU1PUi1MRVNURSc9PidUTCcsJ1RPR08nPT4nVEcnLCdUT0tFTEFVJz0+J1RLJywnVE9OR0EnPT4nVE8nLCdUUklOSURBRCBBTkQgVE9CQUdPJz0+J1RUJywnVFVOSVNJQSc9PidUTicsJ1RVUktFWSc9PidUUicsJ1RVUktNRU5JU1RBTic9PidUTScsJ1RVUktTIEFORCBDQUlDT1MgSVNMQU5EUyc9PidUQycsJ1RVVkFMVSc9PidUVicsJ1VHQU5EQSc9PidVRycsJ1VLUkFJTkUnPT4nVUEnLCdVTklURUQgQVJBQiBFTUlSQVRFUyc9PidBRScsJ1VOSVRFRCBLSU5HRE9NJz0+J0dCJywnVVJVR1VBWSc9PidVWScsJ1VaQkVLSVNUQU4nPT4nVVonLCdWQU5VQVRVJz0+J1ZVJywnVkVORVpVRUxBJz0+J1ZFJywnVklFVCBOQU0nPT4nVk4nLCdWSVJHSU4gSVNMQU5EUywgQlJJVElTSCc9PidWRycsJ1ZJUkdJTiBJU0xBTkRTLCBVLlMuJz0+J1ZJJywnV0FMTElTIEFORCBGVVRVTkEnPT4nV0YnLCdXRVNURVJOIFNBSEFSQSc9PidFSCcsJ1lFTUVOJz0+J1lFJywnWkFNQklBJz0+J1pNJywnWklNQkFCV0UnPT4nWlcnDQoJKTsNCg0KDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2RfcHJlZnNfdGl0bGUnLCAkdGhpcy0+TGFuZygnbW9kX3ByZWZzX3RpdGxlJykpOw0KICAgIA0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnc2F2ZV9BQ1RwdGlvbnMnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZm9ybV9zdWJtaXQnLCAkdGhpcy0+TGFuZygnZm9ybV9zdWJtaXQnKSkpOw0KDQogICAgLy8geW91J2xsIG9mdGVuIHdhbnQgdG8gZG8gdGhpbmdzIGxpa2UgdGhpcyB0byBwcm92aWRlIGZlZWRiYWNrOg0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsIChpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pPyRwYXJhbXNbJ21lc3NhZ2UnXTonJykpOw0KCQ0KCQ0KCQ0KCQ0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW50ZXJuYWxfbGFiZWwnLCAkdGhpcy0+TGFuZygnaW50ZXJuYWxfbGFiZWwnKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnRlcm5hbF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ2ludGVybmFsJywgYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW50ZXJuYWwnLCcwJyksJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ludGVybmFsX2RpcycsICR0aGlzLT5MYW5nKCdpbnRlcm5hbCcpKTsNCgkNCgkNCgkNCgkkaXA9JF9TRVJWRVJbJ1JFTU9URV9BRERSJ107IA0KCSRpcFZhcj1zdHJfcmVwbGFjZSgiLiIsICIiLCAkaXApOw0KCSROdGg9ZGF0ZSgiRyIpOw0KCSRJUGhhc2hTdHIgPSBzaGExKCRpcFZhcik7DQoJJHRoZVJDT0RFPSdrZCFpZicucmFuZCgpLidzOWRqNFRvcCcucmFuZCgpLic2UFNLOTQzOGpsMSEnOw0KCSR0aGVSQ09ERT1zdWJzdHIoJElQaGFzaFN0ciwxLCROdGgpLiR0aGVSQ09ERS5zdWJzdHIoJElQaGFzaFN0ciwkTnRoKzEpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignRm9ybUtleV9sYWJlbCcsICR0aGlzLT5MYW5nKCdGb3JtS2V5X2xhYmVsJykpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignRm9ybUtleV9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnRm9ybUtleScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdGb3JtS2V5JywkdGhlUkNPREUpLCA0MCkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignRm9ybUtleV9kaXMnLCAkdGhpcy0+TGFuZygnRm9ybUtleScpKTsNCgkNCgkNCgkkaXA9JF9TRVJWRVJbJ1JFTU9URV9BRERSJ10uZGF0ZSgnbVlkJywgc3RydG90aW1lKCcrMSB3ZWVrJykpOyANCgkkaXBWYXI9c3RyX3JlcGxhY2UoIi4iLCAiIiwgJGlwKTsNCgkkTnRoPWRhdGUoIkciKTsNCgkkSVBoYXNoU3RyID0gc2hhMSgkaXBWYXIpOw0KCSR0aGVSQ09ERT0na2QhaWYnLnJhbmQoKS4nczlkajRUb3AnLnJhbmQoKS4nNlBTSycuJGlwVmFyLic4amwxISc7DQoJJHRoZVJDT0RFPXN1YnN0cigkSVBoYXNoU3RyLDEsJE50aCkuJHRoZVJDT0RFLnN1YnN0cigkSVBoYXNoU3RyLCROdGgrMSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdGb3JtVmFsdWVfbGFiZWwnLCAkdGhpcy0+TGFuZygnRm9ybVZhbHVlX2xhYmVsJykpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignRm9ybVZhbHVlX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdGb3JtVmFsdWUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnRm9ybVZhbHVlJywkdGhlUkNPREUpLCA0MCkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignRm9ybVZhbHVlX2RpcycsICR0aGlzLT5MYW5nKCdGb3JtVmFsdWUnKSk7DQoJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyX2ltYWdlX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2NwcF9oZWFkZXJfaW1hZ2VfbGFiZWwnKSk7DQoJJGltZ0hlYWQ9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJfaW1hZ2UnKTsNCglpZihpc3NldCgkaW1nSGVhZCkmJigkaW1nSGVhZCE9JycpKXsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyX2ltYWdlX291dHB1dCcsICc8aW1nIHNyYz0iJy4kaW1nSGVhZC4nIiAvPicpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9oZWFkZXJfaW1hZ2VfY2xlYXInLCAkdGhpcy0+Q3JlYXRlSW5wdXRDaGVja2JveCgkaWQsJ2NwcF9oZWFkZXJfaW1hZ2VfY2xlYXInLDEpKTsNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyX2ltYWdlX2NsZWFyX2xhYmxlJywgJHRoaXMtPkxhbmcoJ0NsZWFySW1nJykpOw0KCX0NCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9oZWFkZXJfaW1hZ2VfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRGaWxlICgkaWQsJ2NwcF9oZWFkZXJfaW1hZ2UnLCAnJywgJycsICdpZD0iJy4kaWQuJ2NwcF9oZWFkZXJfaW1hZ2UiJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3BwX2hlYWRlcl9pbWFnZV9kaXMnLCAkdGhpcy0+TGFuZygnY3BwX2hlYWRlcl9pbWFnZScpKTsNCgkNCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9oZWFkZXJiYWNrX2NvbG9yX2V4JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJiYWNrX2NvbG9yJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3BwX2hlYWRlcmJhY2tfY29sb3JfbGFiZWwnLCAkdGhpcy0+TGFuZygnY3BwX2hlYWRlcmJhY2tfY29sb3JfbGFiZWwnKSk7DQoJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDUF9sYWJlbCcsICR0aGlzLT5MYW5nKCdDUF9sYWJlbCcpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9oZWFkZXJiYWNrX2NvbG9yX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjcHBfaGVhZGVyYmFja19jb2xvcicsICcjJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3BwX2hlYWRlcmJhY2tfY29sb3InLCdGRkZGRkYnKSwgNDApKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9oZWFkZXJiYWNrX2NvbG9yX2RpcycsICR0aGlzLT5MYW5nKCdjcHBfaGVhZGVyYmFja19jb2xvcicpKTsNCgkNCg0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW1hZ2VfdXJsX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2ltYWdlX3VybF9sYWJlbCcpKTsNCgkkaW1nSGVhZD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsJyk7DQoJaWYoaXNzZXQoJGltZ0hlYWQpJiYoJGltZ0hlYWQhPScnKSl7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW1hZ2VfdXJsX291dHB1dCcsICc8aW1nIHNyYz0iJy4kaW1nSGVhZC4nIiAvPicpOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybF9jbGVhcicsICR0aGlzLT5DcmVhdGVJbnB1dENoZWNrYm94KCRpZCwnaW1hZ2VfdXJsX2NsZWFyJywxKSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW1hZ2VfdXJsX2NsZWFyX2xhYmxlJywgJHRoaXMtPkxhbmcoJ0NsZWFySW1nJykpOw0KDQoJfQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW1hZ2VfdXJsX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0RmlsZSAoJGlkLCdpbWFnZV91cmwnLCAnJywgJycsICdpZD0iJy4kaWQuJ2ltYWdlX3VybCInKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmxfZGlzJywgJHRoaXMtPkxhbmcoJ2ltYWdlX3VybCcpKTsNCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2J1c2luZXNzTmFtZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdidXNpbmVzc05hbWVfbGFiZWwnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdidXNpbmVzc05hbWVfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2J1c2luZXNzTmFtZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdidXNpbmVzc05hbWUnLCcnKSwgNDApKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2J1c2luZXNzTmFtZV9kaXMnLCAkdGhpcy0+TGFuZygnYnVzaW5lc3NOYW1lJykpOw0KCQ0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignU0FOREJPWF9idXNpbmVzc05hbWVfbGFiZWwnLCAkdGhpcy0+TGFuZygnU0FOREJPWF9idXNpbmVzc05hbWVfbGFiZWwnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTQU5EQk9YX2J1c2luZXNzTmFtZV9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnU0FOREJPWF9idXNpbmVzc05hbWUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnU0FOREJPWF9idXNpbmVzc05hbWUnLCcnKSwgNDApKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NBTkRCT1hfYnVzaW5lc3NOYW1lX2RpcycsICR0aGlzLT5MYW5nKCdTQU5EQk9YX2J1c2luZXNzTmFtZScpKTsNCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NBTkRCT1hfYnVzaW5lc3NQQVNTX2xhYmVsJywgJHRoaXMtPkxhbmcoJ1NBTkRCT1hfYnVzaW5lc3NQQVNTX2xhYmVsJykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignU0FOREJPWF9idXNpbmVzc1BBU1NfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ1NBTkRCT1hfYnVzaW5lc3NQQVNTJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ1NBTkRCT1hfYnVzaW5lc3NQQVNTJywnJyksIDQwKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTQU5EQk9YX2J1c2luZXNzUEFTU19kaXMnLCAkdGhpcy0+TGFuZygnU0FOREJPWF9idXNpbmVzc1BBU1MnKSk7DQoJDQoJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTQU5EQk9YX3BlcnNvbmFsTmFtZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdTQU5EQk9YX3BlcnNvbmFsTmFtZV9sYWJlbCcpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NBTkRCT1hfcGVyc29uYWxOYW1lX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdTQU5EQk9YX3BlcnNvbmFsTmFtZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdTQU5EQk9YX3BlcnNvbmFsTmFtZScsJycpLCA0MCkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignU0FOREJPWF9wZXJzb25hbE5hbWVfZGlzJywgJHRoaXMtPkxhbmcoJ1NBTkRCT1hfcGVyc29uYWxOYW1lJykpOw0KCQ0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignU0FOREJPWF9wZXJzb25hbFBBU1NfbGFiZWwnLCAkdGhpcy0+TGFuZygnU0FOREJPWF9wZXJzb25hbFBBU1NfbGFiZWwnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTQU5EQk9YX3BlcnNvbmFsUEFTU19pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnU0FOREJPWF9wZXJzb25hbFBBU1MnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnU0FOREJPWF9wZXJzb25hbFBBU1MnLCcnKSwgNDApKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NBTkRCT1hfcGVyc29uYWxQQVNTX2RpcycsICR0aGlzLT5MYW5nKCdTQU5EQk9YX3BlcnNvbmFsUEFTUycpKTsNCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0xhbmdfbGFiZWwnLCAkdGhpcy0+TGFuZygnTGFuZ19sYWJlbCcpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0xhbmdfaW5wdXQnLA0KCQkgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ0xhbmcnLCAkTGFuZ0FycmF5LCAnJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ0xhbmcnLCdlbicpKSk7DQoJDQoNCg0KCQ0KCQ0KCQ0KICAgIGVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fb3B0aW9ucy50cGwnKTsNCg0KPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_BTNoptionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQppZiggIWlzc2V0KCRnQ21zKSApIGV4aXQ7DQoNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZF9wcmVmc190aXRsZScsICR0aGlzLT5MYW5nKCdtb2RfcHJlZnNfdGl0bGUnKSk7DQogICAgDQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N0YXJ0JywgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCgkaWQsICdzYXZlX0JOVG9wdGlvbnMnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7DQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOw0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdWJtaXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCAnZm9ybV9zdWJtaXQnLCAkdGhpcy0+TGFuZygnZm9ybV9zdWJtaXQnKSkpOw0KDQogICAgLy8geW91J2xsIG9mdGVuIHdhbnQgdG8gZG8gdGhpbmdzIGxpa2UgdGhpcyB0byBwcm92aWRlIGZlZWRiYWNrOg0KICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsIChpc3NldCgkcGFyYW1zWydtZXNzYWdlJ10pPyRwYXJhbXNbJ21lc3NhZ2UnXTonJykpOw0KCQ0KCQ0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignUmVkaXJlY3RVUkxfbGFiZWwnLCAkdGhpcy0+TGFuZygnUmVkaXJlY3RVUkxfbGFiZWwnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdSZWRpcmVjdFVSTF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnUmVkaXJlY3RVUkwnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnUmVkaXJlY3RVUkwnLCcnKSwgNDApKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1JlZGlyZWN0VVJMX2RpcycsICR0aGlzLT5MYW5nKCdSZWRpcmVjdFVSTCcpKTsNCgkNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhbmNlbF9yZXR1cm5fbGFiZWwnLCAkdGhpcy0+TGFuZygnY2FuY2VsX3JldHVybl9sYWJlbCcpKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhbmNlbF9yZXR1cm5faW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2NhbmNlbF9yZXR1cm4nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2FuY2VsX3JldHVybicsJycpLCA0MCkpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsX3JldHVybl9kaXMnLCAkdGhpcy0+TGFuZygnY2FuY2VsX3JldHVybicpKTsJDQoJDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub19zaGlwcGluZ19sYWJlbCcsICR0aGlzLT5MYW5nKCdub19zaGlwcGluZ19sYWJlbCcpKTsNCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vX3NoaXBwaW5nX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnbm9fc2hpcHBpbmcnLCBhcnJheSgnbm90IHByb21wdGVkJz0+JzEnLCdwcm9tcHRlZCwgbm90IHJlcXVpcmVkJz0+JzAnLCdwcm9tcHRlZCwgcmVxdWlyZWQnPT4nMicpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbm9fc2hpcHBpbmcnLCcwJyksJycsJzxici8+JykpOw0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignbm9fc2hpcHBpbmdfZGlzJywgJHRoaXMtPkxhbmcoJ25vX3NoaXBwaW5nJykpOw0KDQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub3RpZnlfdXJsX2xhYmVsJywgJHRoaXMtPkxhbmcoJ25vdGlmeV91cmxfbGFiZWwnKSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub3RpZnlfdXJsX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdub3RpZnlfdXJsJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ25vdGlmeV91cmwnLCcnKSwgNDApKTsNCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vdGlmeV91cmxfZGlzJywgJHRoaXMtPkxhbmcoJ25vdGlmeV91cmwnKSk7DQoJDQoJDQoJDQogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9CTlRvcHRpb25zLnRwbCcpOw0KDQo/Pg==]]></data>
	</file>
	<file>
	  <filename>/imagefiles.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiNDTVMgLSBDTVMgTWFkZSBTaW1wbGUNCiMoYykyMDA0IGJ5IFRlZCBLdWxwICh3aXNoeUB1c2Vycy5zZi5uZXQpDQojVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9jbXNtYWRlc2ltcGxlLnNmLm5ldA0KIw0KI1RoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCiN0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcg0KIyhhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsDQojYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCiNNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCiNZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KI2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEgIDAyMTExLTEzMDcgIFVTQQ0KIw0KIyRJZDogaW1hZ2VmaWxlcy5waHAgNTE4OSAyMDA4LTEwLTI5IDIwOjAyOjUzWiBjYWxndXkxMDAwICQNCg0KDQoNCi8vIGluIGZpbGV0eXBlcy5pbmMucGhwIGZpbGV0eXBlcyBhcmUgZGVmaW5lZCANCi8vcmVxdWlyZV9vbmNlKGRpcm5hbWUoZGlybmFtZShfX0ZJTEVfXykpLiIvbGliL2ZpbGVtYW5hZ2VyL2ZpbGV0eXBlcy5pbmMucGhwIik7DQpyZXF1aXJlX29uY2UoZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSkuJy4uLy4uL2xpYi9maWxlbWFuYWdlci9maWxldHlwZXMuaW5jLnBocCcpOw0KLy9yZXF1aXJlX29uY2UoZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSkuIi9saWIvZmlsZS5mdW5jdGlvbnMucGhwIik7DQpyZXF1aXJlX29uY2UoZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSkuJy4uLy4uL2xpYi9maWxlLmZ1bmN0aW9ucy5waHAnKTsNCi8vcmVxdWlyZV9vbmNlKCIuLi9pbmNsdWRlLnBocCIpOw0KDQokdXJsZXh0PSc/Jy5DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOw0KDQovL2NoZWNrX2xvZ2luKCk7DQoNCiRyZXNpemVBdD0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ0ltYWdlX1NpemUnLCAnNjQwJyk7DQokdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkcmVzaXplQXQpOw0KJGFjdGlvbl9kb25lPScnOw0KY2xhc3MgSW1nUmVzaXplciB7DQoJcHJpdmF0ZSAkb3JpZ2luYWxGaWxlID0gJyc7DQoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcmlnaW5hbEZpbGUgPSAnJykgew0KCQkkdGhpcyAtPiBvcmlnaW5hbEZpbGUgPSAkb3JpZ2luYWxGaWxlOw0KCX0NCglwdWJsaWMgZnVuY3Rpb24gcmVzaXplKCRuZXdXaWR0aCwgJHRhcmdldEZpbGUpIHsNCgkJaWYgKGVtcHR5KCRuZXdXaWR0aCkgfHwgZW1wdHkoJHRhcmdldEZpbGUpKSB7DQoJCQlyZXR1cm4gZmFsc2U7DQoJCX0NCgkJZ2xvYmFsICRnQ21zOw0KCQkkY2FycyA9ICYkZ0Ntcy0+bW9kdWxlc1snQ2FycyddWydvYmplY3QnXTsNCgkJJHFsdD0kY2Fycy0+R2V0UHJlZmVyZW5jZSgnSW1hZ2VfUWx0JywgJzQxJyk7DQoJCSRzcmMgPSBpbWFnZWNyZWF0ZWZyb21qcGVnKCR0aGlzIC0+IG9yaWdpbmFsRmlsZSk7DQoJCWxpc3QoJHdpZHRoLCAkaGVpZ2h0KSA9IGdldGltYWdlc2l6ZSgkdGhpcyAtPiBvcmlnaW5hbEZpbGUpOw0KCQkkbmV3SGVpZ2h0ID0gKCRoZWlnaHQgLyAkd2lkdGgpICogJG5ld1dpZHRoOw0KCQkkdG1wID0gaW1hZ2VjcmVhdGV0cnVlY29sb3IoJG5ld1dpZHRoLCAkbmV3SGVpZ2h0KTsNCgkJaW1hZ2Vjb3B5cmVzYW1wbGVkKCR0bXAsICRzcmMsIDAsIDAsIDAsIDAsICRuZXdXaWR0aCwgJG5ld0hlaWdodCwgJHdpZHRoLCAkaGVpZ2h0KTsNCgkJaWYgKGZpbGVfZXhpc3RzKCR0YXJnZXRGaWxlKSkgew0KCQkJdW5saW5rKCR0YXJnZXRGaWxlKTsNCgkJfQ0KCQlpbWFnZWpwZWcoJHRtcCwgJHRhcmdldEZpbGUsICRxbHQpOyAvLyA4NSBpcyBteSBjaG9pY2UsIG1ha2UgaXQgYmV0d2VlbiAwIJYgMTAwIGZvciBvdXRwdXQgaW1hZ2UgcXVhbGl0eSB3aXRoIDEwMCBiZWluZyB0aGUgbW9zdCBsdXh1cmlvdXMNCgl9DQp9DQpmdW5jdGlvbiBkZWxkaXIoJGRpcikNCnsNCgkkaGFuZGxlID0gb3BlbmRpcigkZGlyKTsNCgl3aGlsZSAoZmFsc2UhPT0oJEZvbGRlck9yRmlsZSA9IHJlYWRkaXIoJGhhbmRsZSkpKQ0KCXsNCgkJaWYoJEZvbGRlck9yRmlsZSAhPSAiLiIgJiYgJEZvbGRlck9yRmlsZSAhPSAiLi4iKSANCgkJeyAgDQoJCQlpZihAaXNfZGlyKCIkZGlyLyRGb2xkZXJPckZpbGUiKSkgDQoJCQl7DQoJCQkJZGVsZGlyKCIkZGlyLyRGb2xkZXJPckZpbGUiKTsNCgkJCX0gIC8vIHJlY3Vyc2l2ZQ0KCQkJZWxzZQ0KCQkJew0KCQkJCXVubGluaygiJGRpci8kRm9sZGVyT3JGaWxlIik7DQoJCQl9DQoJCX0gIA0KCX0NCgljbG9zZWRpcigkaGFuZGxlKTsNCglpZihybWRpcigkZGlyKSkNCgl7DQoJCSRzdWNjZXNzID0gdHJ1ZTsNCgl9DQoJcmV0dXJuICRzdWNjZXNzOyAgDQp9IA0KDQokZXJyb3JzID0gIiI7DQoNCiRkaXIgPSAkY29uZmlnWyJpbWFnZV91cGxvYWRzX3BhdGgiXTsNCiR1cmwgPSAkY29uZmlnWyJpbWFnZV91cGxvYWRzX3VybCJdOw0KLy8kdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkZGlyKTsNCg0KJHJlbGRpciA9ICIvQ0FSUy8iLiRwYXJhbXNbJ1ZJTlYnXS4iLyI7DQppZiAoIWlzc2V0KCRJTUNvbmZpZ1sndGh1bWJuYWlsX2RpciddKSkgJElNQ29uZmlnWyd0aHVtYm5haWxfZGlyJ10gPSAnJzsNCmlmIChpc3NldCgkX1BPU1RbJ3JlbGRpciddKSkgJHJlbGRpciA9ICRfUE9TVFsncmVsZGlyJ107DQplbHNlIGlmIChpc3NldCgkX0dFVFsncmVsZGlyJ10pKSAkcmVsZGlyID0gJF9HRVRbJ3JlbGRpciddOw0KSWYoIWZpbGVfZXhpc3RzKCRkaXIuIi9DQVJTLyIpKXsNCgkJCW1rZGlyKCRkaXIuIi9DQVJTLyIsIDA3NzcpOw0KCQkJYXVkaXQoLTEsICRkaXIuIi8iLiRyZWxkaXIsICdDcmVhdGVkIERpcmVjdG9yeScpOw0KCQkJDQp9DQoNCklmKCFmaWxlX2V4aXN0cygkZGlyLiIvIi4kcmVsZGlyKSl7DQoNCgkJCW1rZGlyKCRkaXIuIi8iLiRyZWxkaXIsIDA3NzcpOw0KCQkJYXVkaXQoLTEsICRkaXIuIi8iLiRyZWxkaXIsICdDcmVhdGVkIERpcmVjdG9yeScpOw0KfQ0KDQoNCmlmIChzdHJwb3MoJHJlbGRpciwgJy4uJykgPT09IGZhbHNlICYmIHN0cnBvcygkcmVsZGlyLCAnXFwnKSA9PT0gZmFsc2UpDQp7DQoJJGRpciAuPSAkcmVsZGlyOw0KfQ0KLy8kdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkcmVsZGlyKTsNCiR1c2VyaWQgPSBnZXRfdXNlcmlkKCk7DQokYWNjZXNzID0gY2hlY2tfcGVybWlzc2lvbigkdXNlcmlkLCAnTW9kaWZ5IEZpbGVzJyk7DQoNCiR1c2VybmFtZSA9ICRnQ21zLT52YXJpYWJsZXNbInVzZXJuYW1lIl07DQoNCiNEaWQgd2UgdXBsb2FkIGEgZmlsZT8NCmlmIChpc3NldCgkX0ZJTEVTKSAmJiBpc3NldCgkX0ZJTEVTWyd1cGxvYWRmaWxlJ10pICYmIGlzc2V0KCRfRklMRVNbJ3VwbG9hZGZpbGUnXVsnbmFtZSddKSAmJiAkX0ZJTEVTWyd1cGxvYWRmaWxlJ11bJ25hbWUnXSAhPSAiIikNCnsNCglpZiAoJGFjY2VzcykNCgl7DQoJCWlmICghbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJ3VwbG9hZGZpbGUnXVsndG1wX25hbWUnXSwgJGRpci4iLyIuJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10pKQ0KCQl7DQoJCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCdmaWxlbm90dXBsb2FkZWQnKS4iPC9saT4iOw0KCQl9DQoJCWVsc2UNCgkJew0KCQkJY2htb2QoJGRpci4iLyIuJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10sIG9jdGRlYygnMCcuJGNvbmZpZ1snZGVmYXVsdF91cGxvYWRfcGVybWlzc2lvbiddKSk7DQoNCiR3b3JrID0gbmV3IEltZ1Jlc2l6ZXIoJGRpci4iLyIuJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10pOw0KJHdvcmsgLT4gcmVzaXplKCRyZXNpemVBdCwgJGRpci4iLyIuJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10pOw0KLy8kd29yayAtPiByZXNpemUoNjQwLCAndXBsb2Fkcy9pbWFnZXMvdGVzdC8nLiRfUE9TVFsnRmlsZW5hbWUnXSk7DQoJCQlhdWRpdCgtMSwgJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10sICdVcGxvYWRlZCBGaWxlJyk7DQoJCX0NCgl9DQoJZWxzZQ0KCXsNCgkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnbmVlZHBlcm1pc3Npb250bycsIGFycmF5KCdNb2RpZnkgRmlsZXMnKSkuIjwvbGk+IjsNCgl9DQp9DQoNCiNEaWQgd2UgY3JlYXRlIGEgbmV3IGRpcj8NCmlmIChpc3NldCgkX1BPU1RbJ25ld2RpcnN1Ym1pdCddKSkNCnsNCglpZiAoJGFjY2VzcykNCgl7DQoJCSNNYWtlIHN1cmUgaXQgaXNuJ3QgYW4gZW1wdHkgZGlyIG5hbWUNCgkJaWYgKCRfUE9TVFsnbmV3ZGlyJ10gPT0gIiIpDQoJCXsNCgkJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ2ZpbGVjcmVhdGVkaXJub25hbWUnKS4iPC9saT4iOw0KCQl9DQoJCWVsc2UgaWYgKGVyZWcoJ1wuXC4nLCRfUE9TVFsnbmV3ZGlyJ10pKQ0KCQl7DQoJCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCdmaWxlY3JlYXRlZGlybm9kb3VibGVkb3QnKS4iPC9saT4iOw0KCQl9DQoJCWVsc2UgaWYgKGVyZWcoJy8nLCAkX1BPU1RbJ25ld2RpciddKSB8fCBzdHJwb3MoJF9QT1NUWyduZXdkaXInXSwgJ1xcJykgIT09IGZhbHNlKQ0KCQl7DQoJCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCdmaWxlY3JlYXRlZGlybm9zbGFzaCcpLiI8L2xpPiI7DQoJCX0NCgkJZWxzZSBpZiAoZmlsZV9leGlzdHMoJGRpci4iLyIuJF9QT1NUWyduZXdkaXInXSkpDQoJCXsNCgkJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ2RpcmVjdG9yeWV4aXN0cycpLiI8L2xpPiI7DQoJCX0NCgkJZWxzZQ0KCQl7DQoJCQlta2RpcigkZGlyLiIvIi4kX1BPU1RbJ25ld2RpciddLCAwNzc3KTsNCgkJCWF1ZGl0KC0xLCAkX1BPU1RbJ25ld2RpciddLCAnQ3JlYXRlZCBEaXJlY3RvcnknKTsNCgkJfQ0KCX0NCgllbHNlDQoJew0KCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCduZWVkcGVybWlzc2lvbnRvJywgYXJyYXkoJ01vZGlmeSBGaWxlcycpKS4iPC9saT4iOw0KCX0NCn0NCg0KaWYgKGlzc2V0KCRfR0VUWydhY3Rpb24nXSkgJiYgJF9HRVRbJ2FjdGlvbiddID09ICJkZWxldGVmaWxlIikNCnsNCglpZiAoJGFjY2VzcykNCgl7DQoJCWlmIChpc19maWxlKCRkaXIgLiAiLyIgLiAkX0dFVFsnZmlsZSddKSkNCgkJew0KCQkJaWYgKCEodW5saW5rKCRkaXIgLiAiLyIgLiAkX0dFVFsnZmlsZSddKSkpDQoJCQl7DQoJCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZXJyb3JkZWxldGluZ2ZpbGUnKS4iPC9saT4iOw0KCQkJfQ0KCQkJZWxzZQ0KCQkJew0KCQkJCWF1ZGl0KC0xLCAkcmVsZGlyIC4gIi8iIC4gJF9HRVRbJ2ZpbGUnXSwgJ0RlbGV0ZWQgRmlsZScpOw0KCQkJfQ0KCQl9DQoJCWVsc2UNCgkJew0KCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnbm9yZWFsZmlsZScpLiI8L2xpPiI7DQoJCX0NCgl9DQoJZWxzZQ0KCXsNCgkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnbmVlZHBlcm1pc3Npb250bycsIGFycmF5KCdNb2RpZnkgRmlsZXMnKSkuIjwvbGk+IjsNCgl9DQp9DQplbHNlIGlmIChpc3NldCgkX0dFVFsnYWN0aW9uJ10pICYmICRfR0VUWydhY3Rpb24nXSA9PSAiZGVsZXRlZGlyIikNCnsNCglpZiAoJGFjY2VzcykNCgl7DQoJCWlmIChAaXNfZGlyKCRkaXIgLiAiLyIgLiAkX0dFVFsnZmlsZSddKSkNCgkJew0KCQkJaWYgKCEoZGVsZGlyKCRkaXIgLiAiLyIgLiAkX0dFVFsnZmlsZSddKSkpDQoJCQl7DQoJCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZXJyb3JkZWxldGluZ2RpcmVjdG9yeScpLiI8L2xpPiI7DQoJCQl9DQoJCQllbHNlDQoJCQl7DQoJCQkJYXVkaXQoLTEsICRyZWxkaXIgLiAiLyIgLiAkX0dFVFsnZmlsZSddLCAnRGVsZXRlZCBEaXJlY3RvcnknKTsNCgkJCX0NCgkJfQ0KCQllbHNlDQoJCXsNCgkJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ25vcmVhbGRpcmVjdG9yeScpLiI8L2xpPiI7DQoJCX0NCgl9DQoJZWxzZQ0KCXsNCgkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnbmVlZHBlcm1pc3Npb250bycsIGFycmF5KCdNb2RpZnkgRmlsZXMnKSkuIjwvbGk+IjsNCgl9DQp9DQoNCi8vaW5jbHVkZV9vbmNlKCJoZWFkZXIucGhwIik7DQo/Pg0KDQoNCg0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL2xpYi9maWxlbWFuYWdlci9JbWFnZU1hbmFnZXIvYXNzZXRzL2RpYWxvZy5qcyI+PC9zY3JpcHQ+DQoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vbGliL2ZpbGVtYW5hZ2VyL0ltYWdlTWFuYWdlci9JTUVTdGFuZGFsb25lLmpzIj48L3NjcmlwdD4NCjw/cGhwIGVjaG8gIgk8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIiBzcmM9XCIuLi9saWIvZmlsZW1hbmFnZXIvSW1hZ2VNYW5hZ2VyL2xhbmcvZW4uanNcIj48L3NjcmlwdD5cbiIgPz4NCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQogICAgLy88IVtDREFUQVsNCg0KCQkvL0NyZWF0ZSBhIG5ldyBJbWFuYWdlciBNYW5hZ2VyLCBuZWVkcyB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBtYW5hZ2VyIGlzDQoJCS8vYW5kIHdoaWNoIGxhbmd1YWdlIHRyYW5zbGF0aW9uIHRvIHVzZS4NCg0KCQl2YXIgbWFuYWdlciA9IG5ldyBJbWFnZU1hbmFnZXIoJy4uL2xpYi9maWxlbWFuYWdlci9JbWFnZU1hbmFnZXInLCdlbicpOw0KCQkJDQoJCXZhciB0aHVtYmRpciA9ICI8P3BocCBlY2hvICRJTUNvbmZpZ1sndGh1bWJuYWlsX2RpciddOyA/PiI7DQoJCXZhciBiYXNlX3VybCA9ICI8P3BocCBlY2hvICR1cmw7ID8+IjsJDQoJCS8vSW1hZ2UgTWFuYWdlciB3cmFwcGVyLiBTaW1wbHkgY2FsbHMgdGhlIEltYWdlTWFuYWdlcg0KDQoNCiAgICAvL11dPg0KICAgIDwvc2NyaXB0Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQovKjwhW0NEQVRBWyovDQoNCg0KDQovKl1dPiovDQo8L3NjcmlwdD4NCg0KPD9waHANCi8vJHRoaXMtPkZpcmVEZWJ1ZygkcmVsZGlyLCdtZXNzYWdlJyk7DQoNCiRyb3cgPSAicm93MSI7DQoNCiRkaXJ0ZXh0ID0gIiI7DQokZmlsZXRleHQgPSAiIjsNCiRmaWxlID0gIiI7DQoNCi8vaWYgKCRlcnJvcnMgIT0gIiIpDQovL3sNCi8vCS8vIGVjaG8gIjxkaXYgY2xhc3M9XCJwYWdlZXJyb3Jjb250YWluZXJcIj48dWwgY2xhc3M9XCJlcnJvclwiPiIuJGVycm9ycy4iPC91bD48L2Rpdj4iOw0KLy8JZWNobyAkdGhlbWVPYmplY3QtPlNob3dFcnJvcnMoJzx1bCBjbGFzcz0iZXJyb3IiPicuJGVycm9ycy4nPC91bD4nKTsNCi8vfQ0KDQplY2hvICc8ZGl2IHN0eWxlPSJ3aWR0aDozMjVweDtmbG9hdDpyaWdodDsiPjxoMz5BZGQgSW1hZ2VzPC9oMz48ZGl2IHN0eWxlPSJwYWRkaW5nOiAxMHB4O2JvcmRlcjogMnB4IHNvbGlkICMwMDA7Ij4NCic7DQovL2VjaG8gJHRoZW1lT2JqZWN0LT5TaG93SGVhZGVyKCdpbWFnZW1hbmFnZW1lbnQnKTsNCg0KPz4NCjxpZnJhbWUgY2xhc3M9ImltYWdlZnJhbWUiIHNyYz0iLi4vbW9kdWxlcy9DYXJzL2ltYWdlcy5waHA8P3BocCBlY2hvICR1cmxleHQgPz4mZGlyPTw/cGhwIGVjaG8gIiRyZWxkaXIiID8+IiBuYW1lPSJpbWdNYW5hZ2VyIiB0aXRsZT0iSW1hZ2UgU2VsZWN0aW9uIj48L2lmcmFtZT4NCg0KPD9waHANCg0KaWYgKCRhY2Nlc3MpDQp7DQo/Pg0KDQo8Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBhY3Rpb249Im1vZHVsZWludGVyZmFjZS5waHA/bWFjdD1DYXJzLG0xXyxlZGl0dGVtcGxhdGUsMCZfc189NzcxMGVlOWQmbTFfVklOVj08P3BocCBlY2hvICRwYXJhbXNbJ1ZJTlYnXSA/PiZtMV9hY3RpdmVfdGFiPWVtYWlsX3RlbXBsYXRlJm0xX21vZGU9ZWRpdCY8P3BocCBlY2hvICR1cmxleHQgPz4iIG1ldGhvZD0icG9zdCIgbmFtZT0idXBsb2FkZXIiPg0KICAgICAgICA8ZGl2Pg0KICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gQ01TX1NFQ1VSRV9QQVJBTV9OQU1FID8+IiB2YWx1ZT0iPD9waHAgZWNobyAkX1NFU1NJT05bQ01TX1VTRVJfS0VZXSA/PiIgLz4NCiAgICAgICAgPC9kaXY+DQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0IiBzdHlsZT0ibWFyZ2luOjBweDsiPjw/cGhwIGVjaG8gbGFuZygndXBsb2FkZmlsZScpPz46PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0IiBzdHlsZT0ibWFyZ2luOjBweDsiPg0KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iTUFYX0ZJTEVfU0laRSIgdmFsdWU9Ijw/cGhwIGVjaG8gJGNvbmZpZ1sibWF4X3VwbG9hZF9zaXplIl0/PiIgLz4NCgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlbGRpciIgdmFsdWU9Ijw/cGhwIGVjaG8gJHJlbGRpcj8+IiAvPg0KCQkJPGlucHV0IG5hbWU9InVwbG9hZGZpbGUiIHR5cGU9ImZpbGUiIC8+IDxpbnB1dCBjbGFzcz0icGFnZWJ1dHRvbiIgb25tb3VzZW92ZXI9InRoaXMuY2xhc3NOYW1lPSdwYWdlYnV0dG9uaG92ZXInIiBvbm1vdXNlb3V0PSJ0aGlzLmNsYXNzTmFtZT0ncGFnZWJ1dHRvbiciIHR5cGU9InN1Ym1pdCIgdmFsdWU9Ijw/cGhwIGVjaG8gbGFuZygnc2VuZCcpPz4iIC8+DQoJCTwvcD4NCgk8L2Rpdj4NCjwvZm9ybT4NCg0KPC9kaXY+DQo8L2Rpdj4NCjw/cGhwDQp9DQoNCi8vaW5jbHVkZV9vbmNlKCJmb290ZXIucGhwIik7DQoNCiMgdmltOnRzPTQgc3c9NCBub2V0DQo/Pg0K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/marker.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAK3RFWHRDcmVhdGlvbiBUaW1lAHZyIDE0IGp1bCAyMDA2IDEzOjMxOjIzICswMTAwHvJDZwAAAAd0SU1FB9YHDgsgJYiZ4bUAAAAJcEhZcwAALiIAAC4iAari3ZIAAAAEZ0FNQQAAsY8L/GEFAAAB5ElEQVR42q2Tz0sqURTH72Qq4mASSAoSIfSDdCEI8qJFLXSjLYSQNoGLINrI8/0ZD9q0KnDlKkIMebmP9xZRCEEiLQLBiMiNJDYq/Zg573vpCkM6CdGBD3Pn3OvXe77nDGPfENKwJBHx/CxYAtNAAVfgXJKk7khVCCyCP6ALVKAJXkEdbINxw5tgM4HHPphSFEUql8usXq8zWZZZKBRiPp+PH3sBx2Br4FbiBg+aplGxWKRgMPiMH1+YTKZDq9V64na7G+l0mprNJo7RG/g94IEoQSsUCuRyue6QToIJYAJWMA/Bo2QySZ1Ohws9gZBeZI570Gq1yO/395BKGJg+ZbFYznK5HAmf9vQiKW5iqVQim832Fyn5E+83Y7EYieAdY2Nig7dRqtVqrNfr3YiWGsVltVrtr2f0IrwEZrfbGeqWhQ9GMeFwOPprRS9SAWo4HGZOp/MH1l4DAS6+HolE+u9Xek9kcK+qKqVSKUL/s0hPDhFY83g8j5VKhcQg7nxs80/w0mg0KB6Pa2az+RTpDbDA3sd/lwvk8/l+Z7iS/FHEAor8H9rtNmWzWYpGo+T1eikQCFAmkyFxAy7AJ255aMHYcIID8d1oNBi8hGuwwkYFDq0CPlG3YsTb4B/4BRwjBb4S/wGzT16tu5THiAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/mask.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/ppbmDonate.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/support.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAJYAAAAyCAMAAACJUtIoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAwBQTFRFLi0oBgUB9fX1ra2s1NTUW1lVqainZWRhPj04vr29mZmYJCIdeXh2oKCeOzk0rKyr6+rqp6akEA8JTk1IoqKhX11ZNTQuQD45REI99vb2dHRxQ0E8DQwFt7e2HRwYIB4ZKCYgHhwWycnIGRgUFhUOLiwmMC8pBAQB8PDwT05MIiEen56cERAMMTAqioqILCokp6emYF5aGBcQsbGuIiAaNDMtODYyQkA7FBINHBoUSEdCiYmHDg0HYWBc1NTTEhAJGhgSx8bGnZya0dDPYmFdMjEub29sxMTDCgkEvLy7MTAuCwoFamllFhQQlZSSHBsXODc0cHBtMC8tPDs3q6uoCwkCKigihoWCCAcDgYB+JiQeKSglfHx6Xl1byMjHJCQggH98V1ZTJyYjjYyKY2JeR0VARUM+NzYzQUA8jo6NwsLANTQxgYB9KyoneXd0pKOgNDMwBAMBOTcyFBQQYWBeKSciBwYBMjIvfHp3VVVSUlFONjUvMDAs4uLiCAgBJiUhKykjCQgBJiYhCQcBCAYBCggBCAcBWVdTVlVQXFpWU1JNfXt4TUxHtra1mZiXbWxq09PTFBILPDo1+/v7+fn5+vr6mJiXxcXEmZiWfHt57Ozs+Pj4/Pz8R0ZBDAoDbGxqZGNf/f39e3t5SklEUE9KMzIs7+/v7e3tTEtGUVBNNjUyPjw3XVtX8vLyVVRPT09MWFZSe3p5FBMQiomIS0pFUlFMV1VRMzMwNzYwxcTESUhD8/PzuLi3UVBLVFNO7u7uFxYRcXFvenp4urm5urq5FxYSqamoU1JPh4eFdnZ0RENAfXx5nJuaY2Ngg4J/RkZDf316VFNQlpaUb25qW1tYgoGAsK+tc3JwXV1bYF9b1NPTfn15u7u6nZ2cxsbFqqmnkZGPkI+OxsXFiIeD3d3cx8fGMjErmZmWbWxobm1rdHNvf358hIOBpqWiJyUibGtoKCckubm4vLu6RERAtLOxgoF+k5KR6enpq6uq2NfWWVhVWVhWt7a0SUhFSUlG////pufWsQAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFP3ByUAAAwTSURBVHja7Jl5XFTXFcfnoSIRQuyggmEEcZDnAkgICEOHQBJIcaaTSSQ2RKRGDEtCSIGGMQme4mQegxoHEFCqsoOAuGCIEZcYidEkxuyLjU33VrqkbdKm6WLXc+5982YB0qyfT//o78PnzV3Oeff7zj333jeD6t//k1L9H+tzYN1wx02vvPLRR/fff/d7r7327rsXLlx47MvQQw8FBDzwwLW/eebNX339zlsXfDzWQd83p0+f3tnZmZGaet3s2bMPHNjyZWjatGlXamsPbz60tXdbT1uIX2BVcWz/5Fj3vd85nWFlpF5CqgN0gytX8A5fvA4fPrr56a29QUdSCpOyKxJVm2J8J8HqmpXR2UlQ92RgqA5sYU90+OjRo5u/BB069PTWJ5HqREESBitq2fyEiIDWCbFuvZRxT6cCdaUWcdCXKSh0cHCwOHQwO2XrF6AnUadO9QZtG+hpY1RjC5EqfnvqRFhTZl+XmpGB0zd79pZptRTiU729QUzFfi8BQNyDcFXRwMDAts+hnuAeuTRwpOdEW0FI0n6iqvRHKvWqO8dj/W3agdnXXbpEgcJkpACTZ8+JEykpIdkLgOuqDYUfFrS1pXxWfXjbvdkFKSltpIKCwtAkv8aKOTFOqpqalnFYj9VuOUBZPq2WFkjQQE9KW0FhYUhIaGhoWR1c9WJp6V2IpWrM9gtOCv2sKlsPRcHBwcVJqOBgv+zGiqq9LK/it+trUMHeWAsOHa6lRYeBOhWEq5YeJdhv//7s7MbG3AXw96iylaXPwIrc0vz8fNVtUXiNCmTXsoX5+aWZgY0bP8DPRNa0vJG0nMqqqsbGRPKJUmElagRgJF8VGBjY2IiXimMItXDTaqLSEJXV9icvrJ9vPbSZcnwrWx2FScH7GwMrKo4dq0JV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]]></data>
	</file>
	<file>
	  <filename>/images/Thumbs.db</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAABQAAAAYAAAAHAAAACAAAAAkAAAD+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECQrlolEsoBAwAAAEAMAAAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAgH/////AgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQsAAAAAAABDAGEAdABhAGwAbwBnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAP7///8wAAAA/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8MAAAAAQAAAIULAAD/2P/gABBKRklGAAEBAQBgAGAAAP/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQEBQQFCQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP/AABEIAGAAYAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP0f8c+PLfQ99jDqNrp04wJ9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]]></data>
	</file>
	<file>
	  <filename>/images/wheel.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAMMAAADDCAYAAAA/f6WqAAAAB3RJTUUH1gcOCDIojJpTggAALYlJREFUeNrtnXmYHUW58H9V1WdmMtlDQtijSSDKorLovRAWAwqyiBJugoCK6CfqRdSLityLkIsiF9SIyqIsRhZBlu+TK0JEQBBFUEAEZQ9LgkCABBPIJJnMdFd9f5wzM2d6qrqr+/SZmUy6nqef06e6z9Ld76/epd6qgrKUpSxlKUtZylKWspSlLGVxF1HeguKLAQmTp0JlOuitQU+BaHJ105NBj4JoDEQKolYwoxAmQtKBxKBYi6ITxWokK1GsQPI6ilcQLEWxjBfpFGDKu13CMBwEXsA2bTB+BzA7Qbgz6B0hmgl6GugxEAG6tkX0va/fr70XBhQgqb72bLb3kgjFy0ieQ/EUiscQPErAo/yNlaL6pWUpYWia8Cv4l21BzwYzG6K9IHo7mBarcPcTfG0BwROGNED67xsUy5E8gOSPBNyD5mH+VGqREoaGhX+/KSD3h+j9EL231uILt+AnaYACYcgCiKADxZ+R3IHgNlp4jFvpKuEoYUgBYL8A2mYB80AfDGZXiCp+gu8CwXY8AYaigHABInkJyW+R3Mga7uBu1pZglDDUAJinIJoOZh5ER0L0LjDSLsjaQ9BThN5VlwZDEUD0hwIkK1DcguQ61vN7cTPrShg2Sef3Q+Nh1GGgPwF6X9CV/K2/zghCThgaAUWmOuXLEPwcxZW8wBJxN2EJw4g3g6btCOLTEM0DPdXd6usMTnAW08hxrB4Gl3AH/YR3YF3Pq+08l3YIYucJulH8HskiWrlJXERHCcOIguC4NmjbB6KTQB8EumWgIOuMwp0Vjoww2IAIKN6UkgM0RP37JUguJeBKfshrI923ECMbghPaITgMzMmg31ONBLkEX3uaP41C4DgnDkMQa8HjMKiCwZBOvwIUKxFcTsAFLOQfI7UfQ4xMCL48GsLDgK+A3qNP2NNMH90kCNLMJgcMPj6ELxg2gQ88YOj/ugrJIgQX0MYL4syRBYUYWRCc1AptBwFngN7dHQnKA4GPo5xUlwJLEgxZBD5wCH1WcylZW6xCcAkB3xdn8koJw7CCYIGEaCcwZ4I+HLRyh0V9Wn2dQ6C1p4lUAAxJgGQxpdIiTK7XvnOXYvgGa7heLGTtxi5HcuMH4VtTQJ4N8o8gjwChqozXb5KBdSQcc21g/245NO2K628Iy99JuwwRuwyfWyh4CwGL2IxbzDnsba5HlTAMkUlk+NZc0PeA+BrIsenSkf50/QBwSdww1Pu+ly499utva/9z9kNwGy/wPfNttihhGDQIEIZzt4dtLgd5PcgdskGQZ8Mi/Hm+owmCPRSbDRbJKARfoMI95gfMNwtoK2Form/QBucdD8EfQH4EpHILv3S85tEOvsJdMBhZv6Z5gu7WEvE2SDEDyTVswU/NhWxbwtAUEH6wDUy+FOSlIKfadLW/VpANCn+jrX9B5lWjFl6WWyQTXgfWKeAjVLjL/ITDzAKCEoZCIJinDD/+AAR3gvgoSJluFskM2sH2HUU1szmBSPu478/JDIKfdgvTbqe0tkkzENzAWznHXMTEEoaGQLi4HQ78Ksj/C2p71x3P1pTZzofGfQhvqTZAN9AJrK1tbwJravvrgK5azNX9dUWYSdIRQUozh4SHU913bhuSLzOGX5irmDXc4w3DFISfbgFiIURHV9MojKW/QJPcsZanL8GzX8C5hRFE6yFcD3otRMsgeh7ClyH8J4SrIHoD9Bro6qyez3qgQkArCoVkDAHjUYwnYBIBUwiYRsAMFJuhaEPRTkCFAJHYv5Clv6K+r0KSrWNOpuz3ZMbC51DcJuZbYC9hsIFwza6gL4NoN7fw+/QupwHQQCdZddMQroNoNURPQPgg6Ceg+3nQS+GZ5YJiH7qZzngqbIdkOhVmongHinejmErAWAIquTvusiT3JeUyJQPSAfw3a7hQHE9nCYM7WiRh54MgvAz0VunCn0cz5Emr6N0MhJ0QrYDoftB3QfgIrH9M8MjqIbtv+xHQxUwUO6PYE8X+KKahGEeAStQasgEgkjTDQK1QX6cRXIThdHEEq0sYBoDwYAWWfRKib4MZlw5AxEDTqdG0bBcA0TqIXoDoFtC/gbV/EdyzatiamPsRUOHtVJhNhblI3oViEgHKy4RKy4LtEe7AA4Iks0lwM4bPig/yUglDLwg3tYM+tbZV0k2jpHyjJCiSxigPgKATwuerAES3QHS/4OaNblikAcFcZqI4AMlcAnZHMYGgFgBNM5V8/Qfbe5noP/TUP4Tgo+JAntjkYTDcNQY6zgZ9YnXscSMQZMlGtYKgQa+E6G4Ir4aOOwU3rWGEFAOSY9iJVo5EMg/FTBQtmf0IHxCUFwg9GmIJAUeJ9/LXTRYGw+3jofs8MJ/oP/CmZzMeplIaCF7aIaqZQdfChqsEVz3BCC/mWMYxhkNRnIDi3QS0o2qRKVfqt8wAhy8Q9ZEmwTHsx31DNaJODB0It04C9SPQ8/3MoiwOs7dmiEA/B9Fl0HWV4JLlbGLFzKOFrZiD4osE7ItktNOx9knz9neibdtyJB9nL347FECIoQHh9vGgLqmCYAoEwXuEmga9DKJFsP4ywUWvsIkXcwIVJvF+JCfXIlLtmUFQHjCkA/EaAUeKPbhnxMNg+NM46Dof9Mft5lBen8ErgmQgehX05dB5keB7/6As/Z/PSbQynkNp4atIdkfV9Vv4hliTzKN0cwkEL6GYL3bj3hELg+E3o2H098CcMBAA4wGAacA8CteCvhHEtwVn/L0U+5Rn9TXGM4GPIjkZyVt7e7obgcEHhD4gliGZK97JQyMOhmo/QvhNMKf0OcvGA4asKRgDHGZd7RXWC6Dzl4Izw1LUMzy3bzMDxQICjkTRnjjnUp6+BjsIPftP08LBYhbPjRgYqj3LH/wcmO+DDuwANAKDE4Q3wFwF684RfP2lUrRzPr+LqbCBuSjOQPE2VK2PwqdHOq926APiHhRzxQ6s2OhhqE7l+JcPgrgazJhk08jk1AoDHGYN0eNVLfT6bwRnlusVFPEsz2crWvgGAcegGOXVz5A9olSVStUPiJ8zhk+LLZs76cAgwPD4bhAthmiqn5/gA0RSx1vYCdENoE8TnFg6yM3QEq18FMkCJNv19k34RpOy+A19GsIgOJdlnC7mNG8OWNFcEJ6dCht+DXpXf7PIBwhnROk10N+AsZcK5neVotvEZ3s576CFHxKwNxLlBUNWEPqbSxsQfIptuUaI5vRBiOaB8GA7jF0E+qg+4faFISsQkQH9GIRfEHzirlJUBwmIq5lMC2ehOA5FW2KOUh4QBg4tXYnkELEVDzTjemRzQDASJn4J5Dz7lamMdyHxPA3yTlAfLkEY3CKOZSUv80UkZyB5I5ew26fHt4OkmIzgJ+bV5kxH06Rhny8cAPK06nhlm1clPO6KV1MSgrwO5NGCo58txXMIgPgiG/grCxGchOTV1MemUh6zcoLQE87dBcV3jaFl2JtJhqVbgrwLzCy3aZSlw81pGnXXcopOEczvKMVyGJhNt3EIkh+j2DZRoPOYSf3NpYiAzzCORUXmMMliQTAVqJwLalZygFmQX59KQG4AdR50fbkEYRhpiQNZjORjSJ5FYgqNLPUXJYXgf1jDTsPYTHrtGFBHu+cOSRsB4nVX1oH4FnScLpi/vhTBYQbE/tyN4WgUj6NiQLh6q33Npv7t6RQCLjCG0cPOTDL8cxroe6tjl02CWZQUUTIpppHeANHZIM4WzCnTKoazyXQ/uyK4DslMJKKBHuiBnXD9X79Che8VEW4VxYBgAlh9OZhj7RAYTxCiBP8h6gJzLrx8Vk8fgjGm7FkeIgXgPCBE7zHzAO8h4OcopjtGuKXHVUTKvmAVitlCND5stCAY3vww6BuAYKDwpznNPs6zCUFfDOu+IpjTO72IMaZrOFz/EP32UH7eCwYA8zD7U+FqJFvk6ltwOdK1VyPACBZLmCsEG4ZUGAxvbAbqPjDb24U/i3awwRLpaup15/GCvfuNRzbGrB3EaxcFnCMG+f8U9d+8/3scBgDzGEehuATFuLpVRf1iKo75XI3oe9WgNRzfKrhyyGAwGAFd3wR9mlsT2LSEC4q4mRSZ6voL+kjBbgOyFo0xqxoQNNEEYRVDCEqzrj9TnRUGEDzDSQjO7ddT7asZ7NogLllLu+A940T+7NYGYejcEeR91XmOkkwjHy1h1Q7PAIcKdnza+vvGrMhwTWIQIRGD9Ps+5zb7+0TMTJL2Z0XAUhYScGJvLpMtUzVhlu8ebaCFs4n9zhj4Wl5nWuQHwQTA9aCPSIYgyTxKNJlWgT5G8LZbnf/BmJcyPsyGH3ZOYRMb0ffn+S6RBgOAWck4urgBwfv7RZg8zCPTZxINkKq6/Y4QZk8S/G1QYejGHCzhJoEJql+SVytY07i7QP8nzDgvqYfRGLM06cEU8XBzfGeW80WD/6VZv5P7s0kwAJgXmEkri1Fs7wVB7dvi2iDBAP/VJDhCiOxz3IqcWqHSBXdK2Lsn3bz6ZYb8TrSp9xOuh67jBDskRgeMMUsyCE8RIOQVHFHQ8WYJtiiqLg0GAPMah1LhWiRjXH5CzEFOBaFOokIFcyaJ7LNr5IKhE3OogZskyP5T9Zve1+waofczS2D9+wQzXki9qcY8nvGBNyqAIid8RQleoYLr8epzLDsMBsEazkVwci21YgAIBn8QLFAsngqHZ9UOIo9WWAt3ippWsK9lUa8pMmmItaCPFWzxS6//YswjOYRBDJJgFfm5Is91fdanEUl69YYBwKxiAi3cgmLPHv/B5SBnAaFWFxrYf2vBH7LIdua1tt6EA4G96gEwdSBU90Vd0pOqQVF/po69CqqhYnE5XPirTK5L9pasaIHJKrB5fyuPgMbPNY738f363zEpdfWf92+FJ7LarOVkJL9GMdFYTKKsENTVBxr+0xj+KAS6KZrBYNQquF3AHJ8lhWXMfErWCtHTEOwnGOM9u50x5r6M2iDPa14zwxe0PN8lMv5n399Nq3Mdr3egMy2MbgxnaTjVgGoEBEtdGMLsGYL7m6IZVsBeAvZ1aYX6OtnvmKgBIeu0RD+tsAHU1wXtWad57M7Q0mcRwqyCluXz3oLlccz3901KnU+jaSz31hQQmfyuhkM07OobezR+YATAfxjDMb79Dt4wLMBIAyebatcIWACoh8JlOonavug7y4BcDC035orwNi6kaQLrC1bS7+eBQWT8ftt7E9tPOm6DxniYTA0VIVjdaTjDwPUaRukcELhMJgMffgpmAU8WaiYtx+xk4CEBLVmWDXavvdnrZP8T5P4C8UhmZ96YW5uh6nEvKisyAiRShDftu/N+n0i5bt/PCs//Vu9Aq+zPEdUB1xo4Uldbx8TwqQcEvceBC94mOKlQzRDCcS4Q4k2MTNAUfa8CAVohFuUBIaYZsgp9ViH0FTAfOLK+9xXGrIIsPZzjNIe5kKxfIYjWGM6MYH8NkzxCp17mUm37yNOG03YQvFkIDC9h2rvhWN81to0HJLXXVzfADxq4j905W/9mtqJ5W9ws/62+Tub8j9oRZRIpPoMrgtQQGGMFj64wXGPgRBPTDnm0Qt02eT0cAVyR9h+8YsKdVQdnqyyrISettRlVNY0O4ZLRiBcbhCFtCxPeh3Vbt2PftnUn1MUuc0Bd5FnnM0OCsfVaWupMhjrXhuUVhzOdq2j4voaVPstP+ixNWXdxn1xg0mU9lWaDEc/AzQIOyboAfXK4lZcE7DYW8Vrem2eM+VmDtrpPnSiotZc5fzvtPJnhs83aeq8tj8/QzwoxLNTwHz3awaYRyKYZalY+79xN8HhDZtKTsKWAA7LecekwnUxfJ+MVExsAoVa6ChTWLALo+9n649rzvKy32uQUXhP7vUb6pgrzH9bDjyvwSQMTsoRUiYFC/+OBgY8AZzRkJkUwV0OrzzKBOkF9xepWGbikgHvXnWNLM3fClM/4mlKhxUxy1UU5N98pyxOTwVLMpbgJFD9WqKk0U7Akgv8XgklamNhncYLYNv96g8qtGQxGPArzohzOsnBrBiPguimIZQXAEGYMS+Zp/X1b86Tv0I46mxbQHorWdcttXUDxvlBivyFjTrUcaMoPiDzFHehCx5ILuEDDRzSMzuEwD6C49vkdtoJdgQdzwfAIvEXAnjQgMZantl7CTwu6b90Z4+CNCr/M4A+k1aWZTtKjnZEOgdcOv0J71NmAMI4IeVNMpbfAI0/CHzUcaHJA4NgEcFRuGCI4TEDFN/aX9LTqDNS/bE1h63R1eQiqLxTS47hO+WzSucIhpGk2vchwjsvfMAxMLtYJmiEOhImBEBd+U6R2EALzqOEKA3M0VBqBIGbXfcgYTnGlZyTAYISBg4yj6ZUWMGwSEXtaoYFFAqEL1AxZW+8iIi8yQ4svE0wXFxw6BRjpMImwdO2kQU0KEMLiI8TrmjHlzk0hvGxgWh4AtCUWbGDGHbA98HQmGB6EURHs49IEJqWu3siseyKvATcWeMO6M9jwPnUyIxB4tPARfhkrLnPIODSCsfgCBnvOpIx1ssXNJCyaAIcTLYrWBLays6DjL4ZrIjiVujBr1s6Q2DGp4f2ZYeiCvYBxcS3gep8ERt3+r3dAvFHgPQubHGOXnsddLbm27MuYA+0j+PH38dBo/HbLmBYwlscU1xRxhU6d7yoHwzyymOk3aviSgVG+ppAjtFoPyYHAhZlgiOB9OLSASdEIWJ4w0CXgfwu+X12DJPhJpk7asA6RAIF2QCUTQLAlBUsGZs9Lh2kUb8fiZpELgDgEJmYuFQ7GUnhoK3gW2NnDH3Bpg/j+fosNrYdYZt8LXP5CBPvkyTwz7qZ6JVD0yjrdBdr5WTSCfbRr8nHtcaxeqHVCJ5kruiMtoU8bFDJmHtnqfGWsaZphviD6g+EXGnbq6ZHGw0ewmUx1x8dreBfwZy8YfgPtGnbzScK33X2Hl7p4d8TaYQCDSGjls9S5nF9bK+8KXwrHvq7TDjZzxWYyxf2GtDoXEMbS2rvqbB1yhZYQfmXgq9TGOvjAQLp22NsbBgF7aGhzAeBrMtVHkTTc0YTGo5viHN1GWn7XexcIwmLX21p9bdEA2qEdbEJvYvuqTm6wdNTVD04nBqgLCNFkLfFwBK8Ab9X+plCaQz0bWBj/IVc6xt6+XeEJ3d/1+QbrgN81CQafbFVbmoUt/SIpJSNL+kVaykZStmpIcpqGLRlYk57x6lp02zXs2KfjtynaoL7MEYQh3OFzM9Lq627WXrYs1sChmt5ta/mT6lL8i0dnI14dIs2Q1fzx0R6S9AF9OsEk0rFzjeO4TQu4Wn1jCY/aepJtDaC0aAzfKGbTp/XX8DsDx9fGNXs50ZCYXLX5DJgGPJ8CgxEadrGZRXFV4vIbLHD8sUn3qSgYpKf5IzPAIRMAS1q+Ly26Y1KO9dQpiwAnJWbGv98XjKZrhxDuN9XIYeDjJJMCRrWTm11SYVgMY7urOUkDhD5tigTHFBKhhD81EYYsznCaRiAmnHgKc2Spiwusy4GWFqfZJuz1Ah73H+LPXaaYwRY3sZ+fEAfL1gs9KCAAHA7P/gKWAzOSWn0PjVD/fhfgpkQYumFHXXcT07SCSIFBQOf6hOSogmDI6+SKlNbbt+X3eXUtyJTU0tvMJOlwklXsNa01t2mGJCjSvqdpUAiBud5wXxyGJMHXjj9WV79zqs/QBbu4Jh8yDhhSzKkXDod/DLKZJGksWlSE8MsEPyIu7PHlOXQCLEmmT1aNYNMOtkiWtsDBYJpLEdwr4JiehjpN8E1CzLd2MekwGNhe4zcHYhIMddri73X9JUMBQ5L5k0X4XX6AzZySHr6By0ewQSBJnxVFZdQEceWuU4AwGeSt8GLgqbAaYWvJoQUG/LkQZi4wyDPrpp8MLM7KdNdIDiyhA+k4Vvu8MSSPOx0EMylJ+NPMpEY1RBoItgVeXVDUH7OdB96ZzE67P2lGwqwTBBStGZ6Oqs/bG4YUWtu2hq2AF50waJhuPIWfBGh07zX4zWaWs3Q5hNRX+Mkh8FkiQ2mtv80kskWNkjrS6h+FItuQTNss0EkAJGmKppaPwUs/gVVQXQTdVz3phJsgYXoiDBFMT1oYIGl+QYs5FZpY+KoJmsFX+H3Mn0Yd4qSl+RTJS3271rGJawRXNoJ0+JQueUlacUg6zCWRYno1rwhMZFgCbJOh9U/09HUVht9bYfgpZoKGcSIh3ECC1rDMQBUKeKGJtygkexKdzOEwZzWFbFBoS51J0BhJGkHG4LBFler3SXhUrnTzeJdRnghV0Z1vzxmYYzyFPUkl1gh/i9OB7obNlaNHsSeYnhGGtR9vTs9zWj9DHi2RxfxpxDeIw5CkGWy+gcrQ+vtGkbAIvw8Ag6ohwioM/Xq9jR0aLxvRwBQnDBo2czUhUcpdtMFgmhdSTfIZfNIlmgmDzFCXpBHix5VFOxiHlqjvc3A5uq7Hlzbm2qSEe5vZ8r0o+oIJia2+cUel6vc3S4Jhiklu6Z130mZKGXi9yTB0F+An5DGRfPyEtDqfTVn6FOJ1PmaRSdEMPhDYhH9Qi4FV2gMGl3awhNDcmiGEKfEBtFlAIBaSYOhgyGMa5QmRpqxl3/BmUuqUBYI0c8k42jkXCPFxGTLFRGvmw14t6uTcpAh82p/SSTAIGOPzJcLjeA2mfzbfjMzkM8iMmsKnTnn6DMpyXFmO+8IQd55VgqaoN5mIWb1xS9g2e0fS4J9BC7GGsEp6wpCmHWplTJJmaBd+Qu7llQ0CDF0ZQqZJHWl5o0eupDtf/yAeMq2HQqXAYNMIqgEHuh4KYemDiHcADnrnWxesrtRk3PeHUhr3dicMUW0xEtedynqlBlYPIzMpr/BnjRjZWvk0bRDV7RuH8yxjEOAAIwkSm0kU1WkL11iMLDO0NLO8GTb4OzEbstUJgwEV75ExBf3wRghDI0BozwhRvIdZxLSFzVwyjqhSHJKefeVW3APg0HVQRHV19Vt8xr1B8xnWgWmluNFEJnZv4tGksUX2kWhYOwxgaDSvKClalOQfiDqhttW5IDEOAJKiS1giTGmCqiymURIIrmGgg1baYW036AK/MtFnKKwIiv3X1t8Q1WkqjTHC0cq6Jgo3jtbYNnAm3hoL0meOiMcZXIm9NoESObp00pa50ikhU+FpGhEDgsEGImrid8d9ho4Cv1tSS6rayMugjPMti5eZNNrkG6vhKmuSzKRQDAXuZSmLR+kEERT0XcISfY3D0FWUM1w7f0L5CMtSYBnXXR3Mn1lVO2zPDUkwrDN+Qp56Tm2bVD6/shQYLZkga2aSaACCumPrUn2GRoCIeYQlDGUprIQwUYIUHoIO9lXfY7La4YQhhBW+wWPjAYOwZMGWpSwNRDImRHUwJAFhG3IQ1xgGVjhhMLAi/gU6Iwyx8aglDGUprGiYSCyaJNyC7mM2rUjyGV7Pkh/uMcRu2/IRlqWo0gXbKA8YpKf/EB9iIGM+w2tR3fq78Vlssy5MHMLoT2Gmlo+xLAVphukhiLwLZlvqVjhh+AFitYY3fRahTlsgvbYFErYrH2NZCnKgp4f5hH7Ae1PdX5qoUSJ4rj4RxWf6b9vc6rX9IIS3lo+xLAV4z6Jngrs0INJAqJua/jmnz0DfCbu6/ACT7DDH/QcFvK18kmVptHwAtg5hou/M8Lb38c465QNDmmOcYWo/AexYPsqyNFoE7BBCRVqE3DXLQdLMkEDnLHg5EYYIluTQAE5IDOwCRjRxvtWybBJWErM0BMYTBkHyFKkCnqmfZ9XlM/zdZmuZDL5DbNvusDLEWpbGI0l7hSDzLGOlLT5DCI/Gf8M28fDjom4kU5oWSBsIq6EtgD1o7sx6ZRnhznMEe9q0QNos8HFtIfrkcgAMAzTD1bBGw1JfLZAUau2JKEXwr+UTLUvesi/MDGHLyDOSpD00h4G/p2oGEEZj/m5is3H7agTHvIezy0dalrwlgncLaPFYO3CABnDUmdACg3T8+AO2tVKT1lpN6X/Yef+yJ7os+WF4r65aGF5ZETZZjdW9djss84KhG+7J28XtOK9dwHvLx1qWHP5CEMH7fHqeM6QN3YsYmINqhWEtPKih00VXGomWLdDwvvLJliVr2RXeFcEWEf5awOXL1smndSlmKwy3w7oIHtIeP5ghxHrIOzCjy8dbliwlhA9G0JY3Mc8GRwj3eMNQdaL5g2/Sk6c3P3k0zCkfb1kymEhKw9zIkqmqM8hkTDu88Qo8nAEGCOGOPFohwZxq0fDh8gmXxbfsALtpmOHrC6TJaO393c+I/hMBpMKwEu4Na+ncOoXKDI7LwbtjxpePuSw+RcMRcRMpTdZ0SuPcDbe5fs8Jw19gvYY/pNlfaZGlWBRg8xCOKB9zWdLKFMOYCI6JEgbzJDXEDi2hu+D2zDCAMBH8JgsAOj36FETwKTCyfNxlSSqtcHgEW2VxmD3k89m/1RJRM8IAGm7W0K09QlgZPP3dZsFu5eMuS4LjLDQcF0El7xBPW8Mcwi8R7klfEmH4AywN4b5GQqqWPzVKw/HlEy+L00SCd4YwO0tOXJK5VNuMgeuSfjfFXBFGww05+hSSHBsRwVFvwUwrH3tZbCWEz2to90nP9oGkduzpR+GvDcAAG+AXEWxw+QRpuUsOWidqOKF87GWJl7GG7Q0cmda3kLUhDuF6RPKM9qkw/BWWR/Bbn8hRBnNKRnDcVMzm5eMvS393gc9GMD7J1HbJXEJiXmjg2rTf9ojqCKPhp0k/6mO3Weq2BP69fPxl6Y0gGWaE8DENIq1T1wWItoNy7zPwZAEwwKuwOISXfbSDT1Jf7ZjUcMIkzDalGJSl5it8ScPkLAN1fML7ISyyZanmgmE5Yp2Gq3WCNvDJUbJc2FQNXyzFoCwYdtaxTra0ccyefWAr18KNPn9B+v9XroigK01FaT8I6n2HT7Zj3llKwyYNggKxwMDEPONmUhroa/8peLNQGJ6AJzQsTnJefHunLZGlBWCCUio21aIOBnUoKEHNntGe1oUmscOtsxsu9P0XGdIihI5gYQRRXtPIEXUSGg5RZc7SpqoVJkDlG6BG1a8KbGpQRBmgsIDxv6/DU02AAZ6D+wz83icnJCkcZoGj1cBZYLYopWNTK2O/AuodVQjiW34oNITdcF5S+kVDMICIumGhri547kWo9gREw0wEXy+T+DYlrTD2X0D9OyhVD8DANePFgImw00x0Dbe/CQ9m+TuZBe8luE3DvQlEeneU9E4PLgCFRPEJWvhgKSWbAgjjJ0Dr90BN6A9B0tYfioSGOOyC//EJpzYEA4juLjgnimmHtE4Q2zFDrCFQjEbxHdpMuabDyPYTBIz6L1D/Ul2izaUVlONV9E536rBEbuuEe7P+rVwmyco67ZBmFrmAQFiuu7rNpMK3wbSWUjNSy9aHgPpcn3kkGQiESgGiCoVF3sKoqhWiQYEBRHcEZ2sIPXNDel+NsFxb/2sXKI5gIp+vnV2WEaUVtpkJwXmgxgzUADIHEH1Q1GRscQj35flruZ3VVXB7BL/yBaFXG7iut399CwGnMYWDSukZSSDMHAejLoRg5sBWUGY0ldQALWGgw8DpebRCQzCACDV8vX4NOBcIA7SBdJpI9dtEAs5nK7NDKUUjwk8IIPgmyAP6/ATpEGwfEGzniB9hmUN1EGCADngihPNdDnSvg5x0HQp3IxEwg4DL2MJMKaVpY3eYdzkR1Akglbt1lwnvU02lpWC+k6VfoVAYQJgNcF4ES5wmkXQArxLuRX//YTaj+RGzzNhSqjbWsut8kN8A1ebWCK79JEHq/R4NagGi/1K2gwwDgHhdwyk9znSiNvABYOB9kUg+BJzDNNNWCtbGphXesz+o70MwLtlOTmo1U0Ott0LndQ1LckFXHACXIzi2F2TXqxwQCPAAH5B0ITmXiLN4XHSVUrYxgPCv7wHxc9DTk3NLezbj2K9/b2L7ehVEsxEdTzT6dwtKfRAhcBqSl1Odf5ViMrn8CEULklNo49Qyw3VjAGHfXaHyM1Bvdbf8MqN2sGkJvgUdTxYixYXegIo5DsllCIIBrb5oSCvUb+tQnMMazi01xHAF4YB3g74czNtBC/dQMJOiHVzaovf1blhxKIK1ww8GTIVWfoLiY06hrzebVAoc7kDDBiQ/IOK/+ZNYX0rfcALhA/uB/gmY6RAJP/PIx1SKgxCtAPZHvPpoUX+9+B7edrMlkruQzLICIHNuAzVlN4pL0XyNu0VHKYXDAYRDDwF+DHpbv6kj8voMOoLoM7B8USOh1Cb5DHVlnViO5CQk65w97Ao/MzKpj0JSQXICLVzCB8p+iKGFAImZ+zGoLAK1rZ8vkGYPi6Rj18Lyq4oEoTmaoXp3JJM4Fck3kUjvaJJKMKHc7zWKu9B8hlvFs6VkDrpZ1ArjvwD6NIjGJw/Vr2/lXT6DTvIRAP13iA5ELHul6EtpYiKcaWdzfoLkI4l+gfBsQJL7JgySxwj4Ar8Qd5USOlggHD0Z1FkQHgemLXlmrSjFUfYymVZCeAji+QeacTnNzQrd3ExF8WsUu2aKIPmAYDefXkPyDeBSbigjTc0F4VPvgOiHoPeGSPkBkAWIATBsAP0peOqaos2jwYEBYEuzGwGLUUzNBYMrf8vdMdmJ4gYqnMbl4h+l1BYNwQkV4KNgFkC0XTV0GnkKvy8QA+oMROfCE6cjCJt1ac0fb7ycvwInIOjI5E8lgZD8mTYkx2JYzPHm4HJMdZEgnLgVVH4E6kKQ06rZp42qea8OqGuhclYzQRgczdDjUM/gc0i+j6x1yCkPLZElodFuOr1BwFUYzuFi8VIpzY1ogzFzITod9NtBS/c8FT7h1DTtUP8+ugfMXMTDK5p9mYM4ksxUmMU3UZyCROTqgfaBYWDqh0bxBJIFPMIvuVuEpXRneWxfmQFqAegjIWpPXrfJd1pqb4f5adAHIx58bjAudXCHVU41o5nMQhSfyeQ7pCU7puVBVffXIrkRwXf4rvhbKeVpEHxtPLR+FPTJEL21rzc5bUFknxU80mDQgFkGG+Yi/vLQYF3y4I8xnmnGMZrzkXy8KTAkgaEwKF5FcgVwId8qHeyBEPygFToOheiroHcHXUmd8N1r33iYT72pFi9CdBTivnsH89KHZsD97mY8cAmS+Q050T6v9jEjmoBlKBbRymWcIl4pIbi4Ah3vh+hkiPasmkQ+k/7oHBoicXsNuo9E/PGewb4FQzf7xI5mEmP4ESoBCIV/eobKAEPfFqF4DsllGH7G18TLmx4EC1pg8hzQXwS9L0Sjk9dj8lkZPC8I0XKIPga/u7NZfQnDE4YeDdHK91Ac3+tUZ8tPyqYVJBBYz4kI+AeKa5FcyYniiZEPwcXjQR4K0Qmg96g5xyLdJEozl9I63FwdbdEyMMcgbrt3qG7J0M9LtJ8Zg+FsJCfWhnjm8x3ShtbWw+AaVBSgkbyO4ncEXI3mTv6PWDOCtICE7XcCcySE80HPgKjFb7W+PP5CUii1X27SEgiPQtz616G8PcNjkq7dTTvjORXJqSgqDadlpDvS/evsgHQS8DyKW2jhFlq5n8PFuo0PAAT8aiZ0HwDhXAh3Bz0BIpm+IJSPv5AlH8m6PQTRsYibnxzqWzV8Zqzb3VSYxCeRfJuAcdbsVd/UjCwgpG8GxToULxBwCxVuw/Agh4lVwxeAuwII3w7de4M+AqJ3gZ4EofJbB8d3xbQsZpJthFt0M2z4LOKWYdEhOsymbzSSgzkIyWUotvLWCD490kEKIGlb0AtGJ4oVVHgAyV0EPIzgcfYZQjjMXQGMnQnrdwG9J0RzQE+DaFwVgKzLimfRCLk62zToi8B8HXHDG8NF+obnXKaHm10RXIZit960DZXDf0gPsbocahsItjpd0xpvEPAEAQ8geBLJc7SzlO1ZjhBRsYL/7HhgO+icDnp7CN8B+t0Qbg7hWIgq/QU1xHsxYnyXFvTRDM76DogWwMsXIe7uHE5iN3wn9j3EbMEoFqI4ul+kKW9vdJpjbRN86YAhSAQmQtFJhXW1Xu9lKJ6nhZeR/JOAVSjeoMIaJJ0ERFRYD90VoLWaDt01ttqqMx7CSRBOgXAaRDMg2gx0G4TtNcEX/YU6JB8MWcOoefoVomXQ/Tnovg1xQzTcRG54z3J9mGlnNCchOR3F6NwzEPoAoRJ8i8BTawQJwFToW5kpIKyFc6PauRFSi5pTK6A7AK2qYEQJQu1zLKtfkBY9ytvrHP2u6h9c/dRwFbfhnd58s1iH5rso/g3BEufEAj4Tl9XXxetdm8859ZuruRH93guggqANwWgEo4FxwFhgNNAOoqWGTsIX2Y75bDLjcdeNTdvvPb8TxELonDucQRj+MADcICJ+Jm5Fsz+CnyHQqc8r6bnLjLLhC4DrOwtX2PEfLwqSLDcnDYLeumdBzoOnTkVcs2q4i9rGM/DlavEihk8j+TSCV1PHhAjPBi1N0PPIkI+si0aAiJ+T96JkxgtMaoX6HYuqM1hEcxAX3oy4e6NIm9+4RoFdITq5lJ8C+yC4FkHopamFBxBpWiSTICfIrMj6wSwfEgVtPjfK2co8A+IYWH084kcbVVbwRjgkUhguFktQfALDUcDTTm2Q10zOoiFkgq8hizCZ6h+Va8ur2ijoJklArgfxQzD7IBZej7iic2OTrI13fPD5YgMXiF8QsTdwLoI1drO1yT7C8G44CtYYTrV7N5gD4ZmTEd/daNPhN/7B8ueLFYzmv4DZtZFsUaYGrSi/YVgIfpKN53uhMov2WArmk9BxKOJb9wzHvoOR08+QtZxkWpnAgQScgWSP1MxWnzEPPkl+efKeBnwuS85QWkeZz3FXz7JXZ9oqiC6B6DzEaa+OFPEZmUvLftmMZhKHIvkqkj1S0zTyJPVlzW+SRcGgyZdg10iaRVQHgV4E0fnQ8Q/EmXokic3IXmd5gWlnFIdR4WQk70HV0jp8YZAFgWFLEvSGIQ0Cn9Zfe9QlQrASwsthwwUjEYJNA4Y+KNqYyD4oTkJyUG0VIP90jaxp4ElawAmUT1pEoxAknWeFYQmYS2HdlfDF1xDCjGQx2TRg6IMiYHN2pMKngXkETE1cilfGWnJJtoFCSblNMg0G3YAfkPZdtvN684i6Qd9dNYc6foX4/Caz9sWmBUNvMYLzGM84DiPgEyj27R1h55vlakv/lp5aIBWGNBB8tUgmv2AZRD8HcSU8uQRx5iY32domCkNdud4oupmOZB6KI1G8C4nM5UNk9SlkVhiS6vOkYEcrILoFzHVQ+T3i8HWbsiiUMNSXu0zASmZR4d+QHFwbXFTJPAVNnjqpG2z5faZ7jAD9IoR3grkR1t4B89aOdF+ghKFhS8pIbmIKo9gfwfuRzEExDYXIPGCoKTB4j0/ugOjPYG6H7ttg1WMwv3so5iUqYRhJ5tQUtqXCbCSzUeyF5O0oWgoBIhEG7esgG9DLQd8P0b1g7oHoYdizs2z9SxiaqTkES2llFbNQ7ETAzkh2RDKzpkHGZAJEag8N0HssAv0yRM+Bfgq6HwPzKISPwo0rR2o/QAnDxmpiLWMqMJ1WtgamoJiMYjKSyQSMQjIGhULQhqINpaPqYHltIFoLUSdEq6sdXtEK0K9D9AqYpRAtQ2xXrn9dlrKUpSxlKUtZylKWwSj/HyHl/ePsagXCAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/farbtastic.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIEZhcmJ0YXN0aWMgQ29sb3IgUGlja2VyIDEuMgogKiDCqSAyMDA4IFN0ZXZlbiBXaXR0ZW5zCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQogKi8KCmpRdWVyeS5mbi5mYXJidGFzdGljID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7CiAgJC5mYXJidGFzdGljKHRoaXMsIGNhbGxiYWNrKTsKICByZXR1cm4gdGhpczsKfTsKCmpRdWVyeS5mYXJidGFzdGljID0gZnVuY3Rpb24gKGNvbnRhaW5lciwgY2FsbGJhY2spIHsKICB2YXIgY29udGFpbmVyID0gJChjb250YWluZXIpLmdldCgwKTsKICByZXR1cm4gY29udGFpbmVyLmZhcmJ0YXN0aWMgfHwgKGNvbnRhaW5lci5mYXJidGFzdGljID0gbmV3IGpRdWVyeS5fZmFyYnRhc3RpYyhjb250YWluZXIsIGNhbGxiYWNrKSk7Cn0KCmpRdWVyeS5fZmFyYnRhc3RpYyA9IGZ1bmN0aW9uIChjb250YWluZXIsIGNhbGxiYWNrKSB7CiAgLy8gU3RvcmUgZmFyYnRhc3RpYyBvYmplY3QKICB2YXIgZmIgPSB0aGlzOwoKICAvLyBJbnNlcnQgbWFya3VwCiAgJChjb250YWluZXIpLmh0bWwoJzxkaXYgY2xhc3M9ImZhcmJ0YXN0aWMiPjxkaXYgY2xhc3M9ImNvbG9yIj48L2Rpdj48ZGl2IGNsYXNzPSJ3aGVlbCI+PC9kaXY+PGRpdiBjbGFzcz0ib3ZlcmxheSI+PC9kaXY+PGRpdiBjbGFzcz0iaC1tYXJrZXIgbWFya2VyIj48L2Rpdj48ZGl2IGNsYXNzPSJzbC1tYXJrZXIgbWFya2VyIj48L2Rpdj48L2Rpdj4nKTsKICB2YXIgZSA9ICQoJy5mYXJidGFzdGljJywgY29udGFpbmVyKTsKICBmYi53aGVlbCA9ICQoJy53aGVlbCcsIGNvbnRhaW5lcikuZ2V0KDApOwogIC8vIERpbWVuc2lvbnMKICBmYi5yYWRpdXMgPSA4NDsKICBmYi5zcXVhcmUgPSAxMDA7CiAgZmIud2lkdGggPSAxOTQ7CgogIC8vIEZpeCBiYWNrZ3JvdW5kIFBOR3MgaW4gSUU2CiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9NU0lFIFswLTZdXC4vKSkgewogICAgJCgnKicsIGUpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICBpZiAodGhpcy5jdXJyZW50U3R5bGUuYmFja2dyb3VuZEltYWdlICE9ICdub25lJykgewogICAgICAgIHZhciBpbWFnZSA9IHRoaXMuY3VycmVudFN0eWxlLmJhY2tncm91bmRJbWFnZTsKICAgICAgICBpbWFnZSA9IHRoaXMuY3VycmVudFN0eWxlLmJhY2tncm91bmRJbWFnZS5zdWJzdHJpbmcoNSwgaW1hZ2UubGVuZ3RoIC0gMik7CiAgICAgICAgJCh0aGlzKS5jc3MoewogICAgICAgICAgJ2JhY2tncm91bmRJbWFnZSc6ICdub25lJywKICAgICAgICAgICdmaWx0ZXInOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoZW5hYmxlZD10cnVlLCBzaXppbmdNZXRob2Q9Y3JvcCwgc3JjPSciICsgaW1hZ2UgKyAiJykiCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0pOwogIH0KCiAgLyoqCiAgICogTGluayB0byB0aGUgZ2l2ZW4gZWxlbWVudChzKSBvciBjYWxsYmFjay4KICAgKi8KICBmYi5saW5rVG8gPSBmdW5jdGlvbiAoY2FsbGJhY2spIHsKICAgIC8vIFVuYmluZCBwcmV2aW91cyBub2RlcwogICAgaWYgKHR5cGVvZiBmYi5jYWxsYmFjayA9PSAnb2JqZWN0JykgewogICAgICAkKGZiLmNhbGxiYWNrKS51bmJpbmQoJ2tleXVwJywgZmIudXBkYXRlVmFsdWUpOwogICAgfQoKICAgIC8vIFJlc2V0IGNvbG9yCiAgICBmYi5jb2xvciA9IG51bGw7CgogICAgLy8gQmluZCBjYWxsYmFjayBvciBlbGVtZW50cwogICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7CiAgICAgIGZiLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICB9CiAgICBlbHNlIGlmICh0eXBlb2YgY2FsbGJhY2sgPT0gJ29iamVjdCcgfHwgdHlwZW9mIGNhbGxiYWNrID09ICdzdHJpbmcnKSB7CiAgICAgIGZiLmNhbGxiYWNrID0gJChjYWxsYmFjayk7CiAgICAgIGZiLmNhbGxiYWNrLmJpbmQoJ2tleXVwJywgZmIudXBkYXRlVmFsdWUpOwogICAgICBpZiAoZmIuY2FsbGJhY2suZ2V0KDApLnZhbHVlKSB7CiAgICAgICAgZmIuc2V0Q29sb3IoZmIuY2FsbGJhY2suZ2V0KDApLnZhbHVlKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHRoaXM7CiAgfQogIGZiLnVwZGF0ZVZhbHVlID0gZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlICE9IGZiLmNvbG9yKSB7CiAgICAgIGZiLnNldENvbG9yKHRoaXMudmFsdWUpOwogICAgfQogIH0KCiAgLyoqCiAgICogQ2hhbmdlIGNvbG9yIHdpdGggSFRNTCBzeW50YXggIzEyMzQ1NgogICAqLwogIGZiLnNldENvbG9yID0gZnVuY3Rpb24gKGNvbG9yKSB7CiAgICB2YXIgdW5wYWNrID0gZmIudW5wYWNrKGNvbG9yKTsKICAgIGlmIChmYi5jb2xvciAhPSBjb2xvciAmJiB1bnBhY2spIHsKICAgICAgZmIuY29sb3IgPSBjb2xvcjsKICAgICAgZmIucmdiID0gdW5wYWNrOwogICAgICBmYi5oc2wgPSBmYi5SR0JUb0hTTChmYi5yZ2IpOwogICAgICBmYi51cGRhdGVEaXNwbGF5KCk7CiAgICB9CiAgICByZXR1cm4gdGhpczsKICB9CgogIC8qKgogICAqIENoYW5nZSBjb2xvciB3aXRoIEhTTCB0cmlwbGV0IFswLi4xLCAwLi4xLCAwLi4xXQogICAqLwogIGZiLnNldEhTTCA9IGZ1bmN0aW9uIChoc2wpIHsKICAgIGZiLmhzbCA9IGhzbDsKICAgIGZiLnJnYiA9IGZiLkhTTFRvUkdCKGhzbCk7CiAgICBmYi5jb2xvciA9IGZiLnBhY2soZmIucmdiKTsKICAgIGZiLnVwZGF0ZURpc3BsYXkoKTsKICAgIHJldHVybiB0aGlzOwogIH0KCiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiAgLyoqCiAgICogUmV0cmlldmUgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBnaXZlbiBldmVudCByZWxhdGl2ZSB0byB0aGUgY2VudGVyCiAgICogb2YgdGhlIHdpZGdldC4KICAgKi8KICBmYi53aWRnZXRDb29yZHMgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIHZhciB4LCB5OwogICAgdmFyIGVsID0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7CiAgICB2YXIgcmVmZXJlbmNlID0gZmIud2hlZWw7CgogICAgaWYgKHR5cGVvZiBldmVudC5vZmZzZXRYICE9ICd1bmRlZmluZWQnKSB7CiAgICAgIC8vIFVzZSBvZmZzZXQgY29vcmRpbmF0ZXMgYW5kIGZpbmQgY29tbW9uIG9mZnNldFBhcmVudAogICAgICB2YXIgcG9zID0geyB4OiBldmVudC5vZmZzZXRYLCB5OiBldmVudC5vZmZzZXRZIH07CgogICAgICAvLyBTZW5kIHRoZSBjb29yZGluYXRlcyB1cHdhcmRzIHRocm91Z2ggdGhlIG9mZnNldFBhcmVudCBjaGFpbi4KICAgICAgdmFyIGUgPSBlbDsKICAgICAgd2hpbGUgKGUpIHsKICAgICAgICBlLm1vdXNlWCA9IHBvcy54OwogICAgICAgIGUubW91c2VZID0gcG9zLnk7CiAgICAgICAgcG9zLnggKz0gZS5vZmZzZXRMZWZ0OwogICAgICAgIHBvcy55ICs9IGUub2Zmc2V0VG9wOwogICAgICAgIGUgPSBlLm9mZnNldFBhcmVudDsKICAgICAgfQoKICAgICAgLy8gTG9vayBmb3IgdGhlIGNvb3JkaW5hdGVzIHN0YXJ0aW5nIGZyb20gdGhlIHdoZWVsIHdpZGdldC4KICAgICAgdmFyIGUgPSByZWZlcmVuY2U7CiAgICAgIHZhciBvZmZzZXQgPSB7IHg6IDAsIHk6IDAgfQogICAgICB3aGlsZSAoZSkgewogICAgICAgIGlmICh0eXBlb2YgZS5tb3VzZVggIT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgIHggPSBlLm1vdXNlWCAtIG9mZnNldC54OwogICAgICAgICAgeSA9IGUubW91c2VZIC0gb2Zmc2V0Lnk7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgb2Zmc2V0LnggKz0gZS5vZmZzZXRMZWZ0OwogICAgICAgIG9mZnNldC55ICs9IGUub2Zmc2V0VG9wOwogICAgICAgIGUgPSBlLm9mZnNldFBhcmVudDsKICAgICAgfQoKICAgICAgLy8gUmVzZXQgc3RvcmVkIGNvb3JkaW5hdGVzCiAgICAgIGUgPSBlbDsKICAgICAgd2hpbGUgKGUpIHsKICAgICAgICBlLm1vdXNlWCA9IHVuZGVmaW5lZDsKICAgICAgICBlLm1vdXNlWSA9IHVuZGVmaW5lZDsKICAgICAgICBlID0gZS5vZmZzZXRQYXJlbnQ7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAvLyBVc2UgYWJzb2x1dGUgY29vcmRpbmF0ZXMKICAgICAgdmFyIHBvcyA9IGZiLmFic29sdXRlUG9zaXRpb24ocmVmZXJlbmNlKTsKICAgICAgeCA9IChldmVudC5wYWdlWCB8fCAwKihldmVudC5jbGllbnRYICsgJCgnaHRtbCcpLmdldCgwKS5zY3JvbGxMZWZ0KSkgLSBwb3MueDsKICAgICAgeSA9IChldmVudC5wYWdlWSB8fCAwKihldmVudC5jbGllbnRZICsgJCgnaHRtbCcpLmdldCgwKS5zY3JvbGxUb3ApKSAtIHBvcy55OwogICAgfQogICAgLy8gU3VidHJhY3QgZGlzdGFuY2UgdG8gbWlkZGxlCiAgICByZXR1cm4geyB4OiB4IC0gZmIud2lkdGggLyAyLCB5OiB5IC0gZmIud2lkdGggLyAyIH07CiAgfQoKICAvKioKICAgKiBNb3VzZWRvd24gaGFuZGxlcgogICAqLwogIGZiLm1vdXNlZG93biA9IGZ1bmN0aW9uIChldmVudCkgewogICAgLy8gQ2FwdHVyZSBtb3VzZQogICAgaWYgKCFkb2N1bWVudC5kcmFnZ2luZykgewogICAgICAkKGRvY3VtZW50KS5iaW5kKCdtb3VzZW1vdmUnLCBmYi5tb3VzZW1vdmUpLmJpbmQoJ21vdXNldXAnLCBmYi5tb3VzZXVwKTsKICAgICAgZG9jdW1lbnQuZHJhZ2dpbmcgPSB0cnVlOwogICAgfQoKICAgIC8vIENoZWNrIHdoaWNoIGFyZWEgaXMgYmVpbmcgZHJhZ2dlZAogICAgdmFyIHBvcyA9IGZiLndpZGdldENvb3JkcyhldmVudCk7CiAgICBmYi5jaXJjbGVEcmFnID0gTWF0aC5tYXgoTWF0aC5hYnMocG9zLngpLCBNYXRoLmFicyhwb3MueSkpICogMiA+IGZiLnNxdWFyZTsKCiAgICAvLyBQcm9jZXNzCiAgICBmYi5tb3VzZW1vdmUoZXZlbnQpOwogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgLyoqCiAgICogTW91c2Vtb3ZlIGhhbmRsZXIKICAgKi8KICBmYi5tb3VzZW1vdmUgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIC8vIEdldCBjb29yZGluYXRlcyByZWxhdGl2ZSB0byBjb2xvciBwaWNrZXIgY2VudGVyCiAgICB2YXIgcG9zID0gZmIud2lkZ2V0Q29vcmRzKGV2ZW50KTsKCiAgICAvLyBTZXQgbmV3IEhTTCBwYXJhbWV0ZXJzCiAgICBpZiAoZmIuY2lyY2xlRHJhZykgewogICAgICB2YXIgaHVlID0gTWF0aC5hdGFuMihwb3MueCwgLXBvcy55KSAvIDYuMjg7CiAgICAgIGlmIChodWUgPCAwKSBodWUgKz0gMTsKICAgICAgZmIuc2V0SFNMKFtodWUsIGZiLmhzbFsxXSwgZmIuaHNsWzJdXSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgdmFyIHNhdCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIC0ocG9zLnggLyBmYi5zcXVhcmUpICsgLjUpKTsKICAgICAgdmFyIGx1bSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIC0ocG9zLnkgLyBmYi5zcXVhcmUpICsgLjUpKTsKICAgICAgZmIuc2V0SFNMKFtmYi5oc2xbMF0sIHNhdCwgbHVtXSk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAvKioKICAgKiBNb3VzZXVwIGhhbmRsZXIKICAgKi8KICBmYi5tb3VzZXVwID0gZnVuY3Rpb24gKCkgewogICAgLy8gVW5jYXB0dXJlIG1vdXNlCiAgICAkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNlbW92ZScsIGZiLm1vdXNlbW92ZSk7CiAgICAkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNldXAnLCBmYi5tb3VzZXVwKTsKICAgIGRvY3VtZW50LmRyYWdnaW5nID0gZmFsc2U7CiAgfQoKICAvKioKICAgKiBVcGRhdGUgdGhlIG1hcmtlcnMgYW5kIHN0eWxlcwogICAqLwogIGZiLnVwZGF0ZURpc3BsYXkgPSBmdW5jdGlvbiAoKSB7CiAgICAvLyBNYXJrZXJzCiAgICB2YXIgYW5nbGUgPSBmYi5oc2xbMF0gKiA2LjI4OwogICAgJCgnLmgtbWFya2VyJywgZSkuY3NzKHsKICAgICAgbGVmdDogTWF0aC5yb3VuZChNYXRoLnNpbihhbmdsZSkgKiBmYi5yYWRpdXMgKyBmYi53aWR0aCAvIDIpICsgJ3B4JywKICAgICAgdG9wOiBNYXRoLnJvdW5kKC1NYXRoLmNvcyhhbmdsZSkgKiBmYi5yYWRpdXMgKyBmYi53aWR0aCAvIDIpICsgJ3B4JwogICAgfSk7CgogICAgJCgnLnNsLW1hcmtlcicsIGUpLmNzcyh7CiAgICAgIGxlZnQ6IE1hdGgucm91bmQoZmIuc3F1YXJlICogKC41IC0gZmIuaHNsWzFdKSArIGZiLndpZHRoIC8gMikgKyAncHgnLAogICAgICB0b3A6IE1hdGgucm91bmQoZmIuc3F1YXJlICogKC41IC0gZmIuaHNsWzJdKSArIGZiLndpZHRoIC8gMikgKyAncHgnCiAgICB9KTsKCiAgICAvLyBTYXR1cmF0aW9uL0x1bWluYW5jZSBncmFkaWVudAogICAgJCgnLmNvbG9yJywgZSkuY3NzKCdiYWNrZ3JvdW5kQ29sb3InLCBmYi5wYWNrKGZiLkhTTFRvUkdCKFtmYi5oc2xbMF0sIDEsIDAuNV0pKSk7CgogICAgLy8gTGlua2VkIGVsZW1lbnRzIG9yIGNhbGxiYWNrCiAgICBpZiAodHlwZW9mIGZiLmNhbGxiYWNrID09ICdvYmplY3QnKSB7CiAgICAgIC8vIFNldCBiYWNrZ3JvdW5kL2ZvcmVncm91bmQgY29sb3IKICAgICAgJChmYi5jYWxsYmFjaykuY3NzKHsKICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGZiLmNvbG9yLAogICAgICAgIGNvbG9yOiBmYi5oc2xbMl0gPiAwLjUgPyAnIzAwMCcgOiAnI2ZmZicKICAgICAgfSk7CgogICAgICAvLyBDaGFuZ2UgbGlua2VkIHZhbHVlCiAgICAgICQoZmIuY2FsbGJhY2spLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZSAhPSBmYi5jb2xvcikgewogICAgICAgICAgdGhpcy52YWx1ZSA9IGZiLmNvbG9yOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICBlbHNlIGlmICh0eXBlb2YgZmIuY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykgewogICAgICBmYi5jYWxsYmFjay5jYWxsKGZiLCBmYi5jb2xvcik7CiAgICB9CiAgfQoKICAvKioKICAgKiBHZXQgYWJzb2x1dGUgcG9zaXRpb24gb2YgZWxlbWVudAogICAqLwogIGZiLmFic29sdXRlUG9zaXRpb24gPSBmdW5jdGlvbiAoZWwpIHsKICAgIHZhciByID0geyB4OiBlbC5vZmZzZXRMZWZ0LCB5OiBlbC5vZmZzZXRUb3AgfTsKICAgIC8vIFJlc29sdmUgcmVsYXRpdmUgdG8gb2Zmc2V0UGFyZW50CiAgICBpZiAoZWwub2Zmc2V0UGFyZW50KSB7CiAgICAgIHZhciB0bXAgPSBmYi5hYnNvbHV0ZVBvc2l0aW9uKGVsLm9mZnNldFBhcmVudCk7CiAgICAgIHIueCArPSB0bXAueDsKICAgICAgci55ICs9IHRtcC55OwogICAgfQogICAgcmV0dXJuIHI7CiAgfTsKCiAgLyogVmFyaW91cyBjb2xvciB1dGlsaXR5IGZ1bmN0aW9ucyAqLwogIGZiLnBhY2sgPSBmdW5jdGlvbiAocmdiKSB7CiAgICB2YXIgciA9IE1hdGgucm91bmQocmdiWzBdICogMjU1KTsKICAgIHZhciBnID0gTWF0aC5yb3VuZChyZ2JbMV0gKiAyNTUpOwogICAgdmFyIGIgPSBNYXRoLnJvdW5kKHJnYlsyXSAqIDI1NSk7CiAgICByZXR1cm4gJyMnICsgKHIgPCAxNiA/ICcwJyA6ICcnKSArIHIudG9TdHJpbmcoMTYpICsKICAgICAgICAgICAoZyA8IDE2ID8gJzAnIDogJycpICsgZy50b1N0cmluZygxNikgKwogICAgICAgICAgIChiIDwgMTYgPyAnMCcgOiAnJykgKyBiLnRvU3RyaW5nKDE2KTsKICB9CgogIGZiLnVucGFjayA9IGZ1bmN0aW9uIChjb2xvcikgewogICAgaWYgKGNvbG9yLmxlbmd0aCA9PSA3KSB7CiAgICAgIHJldHVybiBbcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygxLCAzKSkgLyAyNTUsCiAgICAgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygzLCA1KSkgLyAyNTUsCiAgICAgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZyg1LCA3KSkgLyAyNTVdOwogICAgfQogICAgZWxzZSBpZiAoY29sb3IubGVuZ3RoID09IDQpIHsKICAgICAgcmV0dXJuIFtwYXJzZUludCgnMHgnICsgY29sb3Iuc3Vic3RyaW5nKDEsIDIpKSAvIDE1LAogICAgICAgIHBhcnNlSW50KCcweCcgKyBjb2xvci5zdWJzdHJpbmcoMiwgMykpIC8gMTUsCiAgICAgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygzLCA0KSkgLyAxNV07CiAgICB9CiAgfQoKICBmYi5IU0xUb1JHQiA9IGZ1bmN0aW9uIChoc2wpIHsKICAgIHZhciBtMSwgbTIsIHIsIGcsIGI7CiAgICB2YXIgaCA9IGhzbFswXSwgcyA9IGhzbFsxXSwgbCA9IGhzbFsyXTsKICAgIG0yID0gKGwgPD0gMC41KSA/IGwgKiAocyArIDEpIDogbCArIHMgLSBsKnM7CiAgICBtMSA9IGwgKiAyIC0gbTI7CiAgICByZXR1cm4gW3RoaXMuaHVlVG9SR0IobTEsIG0yLCBoKzAuMzMzMzMpLAogICAgICAgIHRoaXMuaHVlVG9SR0IobTEsIG0yLCBoKSwKICAgICAgICB0aGlzLmh1ZVRvUkdCKG0xLCBtMiwgaC0wLjMzMzMzKV07CiAgfQoKICBmYi5odWVUb1JHQiA9IGZ1bmN0aW9uIChtMSwgbTIsIGgpIHsKICAgIGggPSAoaCA8IDApID8gaCArIDEgOiAoKGggPiAxKSA/IGggLSAxIDogaCk7CiAgICBpZiAoaCAqIDYgPCAxKSByZXR1cm4gbTEgKyAobTIgLSBtMSkgKiBoICogNjsKICAgIGlmIChoICogMiA8IDEpIHJldHVybiBtMjsKICAgIGlmIChoICogMyA8IDIpIHJldHVybiBtMSArIChtMiAtIG0xKSAqICgwLjY2NjY2IC0gaCkgKiA2OwogICAgcmV0dXJuIG0xOwogIH0KCiAgZmIuUkdCVG9IU0wgPSBmdW5jdGlvbiAocmdiKSB7CiAgICB2YXIgbWluLCBtYXgsIGRlbHRhLCBoLCBzLCBsOwogICAgdmFyIHIgPSByZ2JbMF0sIGcgPSByZ2JbMV0sIGIgPSByZ2JbMl07CiAgICBtaW4gPSBNYXRoLm1pbihyLCBNYXRoLm1pbihnLCBiKSk7CiAgICBtYXggPSBNYXRoLm1heChyLCBNYXRoLm1heChnLCBiKSk7CiAgICBkZWx0YSA9IG1heCAtIG1pbjsKICAgIGwgPSAobWluICsgbWF4KSAvIDI7CiAgICBzID0gMDsKICAgIGlmIChsID4gMCAmJiBsIDwgMSkgewogICAgICBzID0gZGVsdGEgLyAobCA8IDAuNSA/ICgyICogbCkgOiAoMiAtIDIgKiBsKSk7CiAgICB9CiAgICBoID0gMDsKICAgIGlmIChkZWx0YSA+IDApIHsKICAgICAgaWYgKG1heCA9PSByICYmIG1heCAhPSBnKSBoICs9IChnIC0gYikgLyBkZWx0YTsKICAgICAgaWYgKG1heCA9PSBnICYmIG1heCAhPSBiKSBoICs9ICgyICsgKGIgLSByKSAvIGRlbHRhKTsKICAgICAgaWYgKG1heCA9PSBiICYmIG1heCAhPSByKSBoICs9ICg0ICsgKHIgLSBnKSAvIGRlbHRhKTsKICAgICAgaCAvPSA2OwogICAgfQogICAgcmV0dXJuIFtoLCBzLCBsXTsKICB9CgogIC8vIEluc3RhbGwgbW91c2Vkb3duIGhhbmRsZXIgKHRoZSBvdGhlcnMgYXJlIHNldCBvbiB0aGUgZG9jdW1lbnQgb24tZGVtYW5kKQogICQoJyonLCBlKS5tb3VzZWRvd24oZmIubW91c2Vkb3duKTsKCiAgICAvLyBJbml0IGNvbG9yCiAgZmIuc2V0Q29sb3IoJyMwMDAwMDAnKTsKCiAgLy8gU2V0IGxpbmtlZCBlbGVtZW50cy9jYWxsYmFjawogIGlmIChjYWxsYmFjaykgewogICAgZmIubGlua1RvKGNhbGxiYWNrKTsKICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/includes/ME_1.00.00.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gSmF2YVNjcmlwdCBEb2N1bWVudA0KDQoNCg0KJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsNCgkkKCIudGhlY29udGFjdEZvcm0iKS52YWxpZGF0ZSh7fSk7DQoJJCgiI20xX21vZHVsZWZvcm1fMiIpLnZhbGlkYXRlKHsNCgkgIHJ1bGVzOiB7DQoJCVZJTjoge3JlcXVpcmVkOnRydWUsdmluVVM6dHJ1ZX0NCgkgIH0NCgl9KTsNCiQoJyNjb2xvcnBpY2tlcicpLmZhcmJ0YXN0aWMoImlucHV0W25hbWUqPSdjcHBfaGVhZGVyYmFja19jb2xvciddIik7DQoJJCgiLmV4dGVuZEhBTkRMRSIpLmNsaWNrKGZ1bmN0aW9uKCl7DQoJCWlmKCQodGhpcykubmV4dCgpLmhhc0NsYXNzKCJOZXh0ZW5kIikpew0KCQkJJCh0aGlzKS5maW5kKCJzcGFuIikudGV4dCgiWy1dIik7DQoJCQkkKHRoaXMpLm5leHQoKS5yZW1vdmVDbGFzcygiTmV4dGVuZCIpOw0KCQkJJCgnLmNvbG9ycGlja2VyJykuc2xpZGVEb3duKCJmYXN0Iik7DQoJCQkkKHRoaXMpLm5leHQoKS5hZGRDbGFzcygiZXh0ZW5kIik7DQoJCQkkKCIuVHJhbnNsYWV0Q29uIikuc2hvdygpOw0KCQl9ZWxzZXsNCgkJCSQodGhpcykuZmluZCgic3BhbiIpLnRleHQoIlsrXSIpOwkNCgkJCSQoJy5jb2xvcnBpY2tlcicpLnNsaWRlVXAoImZhc3QiKTsNCgkJCSQodGhpcykubmV4dCgpLmFkZENsYXNzKCJOZXh0ZW5kIik7DQoJCQkkKHRoaXMpLm5leHQoKS5yZW1vdmVDbGFzcygiZXh0ZW5kIik7DQoJCQkkKCIuVHJhbnNsYWV0Q29uIikuaGlkZSgpOw0KCQl9DQoJfSk7DQogDQoNCn0pOwkNCg0KDQoNCg==]]></data>
	</file>
	<file>
	  <filename>/includes/MS_1.00.00.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoNCiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuMy4yDQogKiBodHRwOi8vanF1ZXJ5LmNvbS8NCiAqDQogKiBDb3B5cmlnaHQgKGMpIDIwMDkgSm9obiBSZXNpZw0KICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGFuZCBHUEwgbGljZW5zZXMuDQogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL0xpY2Vuc2UNCiAqDQogKiBEYXRlOiAyMDA5LTAyLTE5IDE3OjM0OjIxIC0wNTAwIChUaHUsIDE5IEZlYiAyMDA5KQ0KICogUmV2aXNpb246IDYyNDYNCiAqLw0KKGZ1bmN0aW9uKCl7dmFyIGw9dGhpcyxnLHk9bC5qUXVlcnkscD1sLiQsbz1sLmpRdWVyeT1sLiQ9ZnVuY3Rpb24oRSxGKXtyZXR1cm4gbmV3IG8uZm4uaW5pdChFLEYpfSxEPS9eW148XSooPCgufFxzKSs+KVtePl0qJHxeIyhbXHctXSspJC8sZj0vXi5bXjojXFtcLixdKiQvO28uZm49by5wcm90b3R5cGU9e2luaXQ6ZnVuY3Rpb24oRSxIKXtFPUV8fGRvY3VtZW50O2lmKEUubm9kZVR5cGUpe3RoaXNbMF09RTt0aGlzLmxlbmd0aD0xO3RoaXMuY29udGV4dD1FO3JldHVybiB0aGlzfWlmKHR5cGVvZiBFPT09InN0cmluZyIpe3ZhciBHPUQuZXhlYyhFKTtpZihHJiYoR1sxXXx8IUgpKXtpZihHWzFdKXtFPW8uY2xlYW4oW0dbMV1dLEgpfWVsc2V7dmFyIEk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoR1szXSk7aWYoSSYmSS5pZCE9R1szXSl7cmV0dXJuIG8oKS5maW5kKEUpfXZhciBGPW8oSXx8W10pO0YuY29udGV4dD1kb2N1bWVudDtGLnNlbGVjdG9yPUU7cmV0dXJuIEZ9fWVsc2V7cmV0dXJuIG8oSCkuZmluZChFKX19ZWxzZXtpZihvLmlzRnVuY3Rpb24oRSkpe3JldHVybiBvKGRvY3VtZW50KS5yZWFkeShFKX19aWYoRS5zZWxlY3RvciYmRS5jb250ZXh0KXt0aGlzLnNlbGVjdG9yPUUuc2VsZWN0b3I7dGhpcy5jb250ZXh0PUUuY29udGV4dH1yZXR1cm4gdGhpcy5zZXRBcnJheShvLmlzQXJyYXkoRSk/RTpvLm1ha2VBcnJheShFKSl9LHNlbGVjdG9yOiIiLGpxdWVyeToiMS4zLjIiLHNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5sZW5ndGh9LGdldDpmdW5jdGlvbihFKXtyZXR1cm4gRT09PWc/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcyk6dGhpc1tFXX0scHVzaFN0YWNrOmZ1bmN0aW9uKEYsSCxFKXt2YXIgRz1vKEYpO0cucHJldk9iamVjdD10aGlzO0cuY29udGV4dD10aGlzLmNvbnRleHQ7aWYoSD09PSJmaW5kIil7Ry5zZWxlY3Rvcj10aGlzLnNlbGVjdG9yKyh0aGlzLnNlbGVjdG9yPyIgIjoiIikrRX1lbHNle2lmKEgpe0cuc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisiLiIrSCsiKCIrRSsiKSJ9fXJldHVybiBHfSxzZXRBcnJheTpmdW5jdGlvbihFKXt0aGlzLmxlbmd0aD0wO0FycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KHRoaXMsRSk7cmV0dXJuIHRoaXN9LGVhY2g6ZnVuY3Rpb24oRixFKXtyZXR1cm4gby5lYWNoKHRoaXMsRixFKX0saW5kZXg6ZnVuY3Rpb24oRSl7cmV0dXJuIG8uaW5BcnJheShFJiZFLmpxdWVyeT9FWzBdOkUsdGhpcyl9LGF0dHI6ZnVuY3Rpb24oRixILEcpe3ZhciBFPUY7aWYodHlwZW9mIEY9PT0ic3RyaW5nIil7aWYoSD09PWcpe3JldHVybiB0aGlzWzBdJiZvW0d8fCJhdHRyIl0odGhpc1swXSxGKX1lbHNle0U9e307RVtGXT1IfX1yZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKEkpe2ZvcihGIGluIEUpe28uYXR0cihHP3RoaXMuc3R5bGU6dGhpcyxGLG8ucHJvcCh0aGlzLEVbRl0sRyxJLEYpKX19KX0sY3NzOmZ1bmN0aW9uKEUsRil7aWYoKEU9PSJ3aWR0aCJ8fEU9PSJoZWlnaHQiKSYmcGFyc2VGbG9hdChGKTwwKXtGPWd9cmV0dXJuIHRoaXMuYXR0cihFLEYsImN1ckNTUyIpfSx0ZXh0OmZ1bmN0aW9uKEYpe2lmKHR5cGVvZiBGIT09Im9iamVjdCImJkYhPW51bGwpe3JldHVybiB0aGlzLmVtcHR5KCkuYXBwZW5kKCh0aGlzWzBdJiZ0aGlzWzBdLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50KS5jcmVhdGVUZXh0Tm9kZShGKSl9dmFyIEU9IiI7by5lYWNoKEZ8fHRoaXMsZnVuY3Rpb24oKXtvLmVhY2godGhpcy5jaGlsZE5vZGVzLGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlVHlwZSE9OCl7RSs9dGhpcy5ub2RlVHlwZSE9MT90aGlzLm5vZGVWYWx1ZTpvLmZuLnRleHQoW3RoaXNdKX19KX0pO3JldHVybiBFfSx3cmFwQWxsOmZ1bmN0aW9uKEUpe2lmKHRoaXNbMF0pe3ZhciBGPW8oRSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmNsb25lKCk7aWYodGhpc1swXS5wYXJlbnROb2RlKXtGLmluc2VydEJlZm9yZSh0aGlzWzBdKX1GLm1hcChmdW5jdGlvbigpe3ZhciBHPXRoaXM7d2hpbGUoRy5maXJzdENoaWxkKXtHPUcuZmlyc3RDaGlsZH1yZXR1cm4gR30pLmFwcGVuZCh0aGlzKX1yZXR1cm4gdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvKHRoaXMpLmNvbnRlbnRzKCkud3JhcEFsbChFKX0pfSx3cmFwOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvKHRoaXMpLndyYXBBbGwoRSl9KX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLHRydWUsZnVuY3Rpb24oRSl7aWYodGhpcy5ub2RlVHlwZT09MSl7dGhpcy5hcHBlbmRDaGlsZChFKX19KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuaW5zZXJ0QmVmb3JlKEUsdGhpcy5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLGZhbHNlLGZ1bmN0aW9uKEUpe3RoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoRSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxzZSxmdW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcy5uZXh0U2libGluZyl9KX0sZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHJldk9iamVjdHx8byhbXSl9LHB1c2g6W10ucHVzaCxzb3J0OltdLnNvcnQsc3BsaWNlOltdLnNwbGljZSxmaW5kOmZ1bmN0aW9uKEUpe2lmKHRoaXMubGVuZ3RoPT09MSl7dmFyIEY9dGhpcy5wdXNoU3RhY2soW10sImZpbmQiLEUpO0YubGVuZ3RoPTA7by5maW5kKEUsdGhpc1swXSxGKTtyZXR1cm4gRn1lbHNle3JldHVybiB0aGlzLnB1c2hTdGFjayhvLnVuaXF1ZShvLm1hcCh0aGlzLGZ1bmN0aW9uKEcpe3JldHVybiBvLmZpbmQoRSxHKX0pKSwiZmluZCIsRSl9fSxjbG9uZTpmdW5jdGlvbihHKXt2YXIgRT10aGlzLm1hcChmdW5jdGlvbigpe2lmKCFvLnN1cHBvcnQubm9DbG9uZUV2ZW50JiYhby5pc1hNTERvYyh0aGlzKSl7dmFyIEk9dGhpcy5vdXRlckhUTUw7aWYoIUkpe3ZhciBKPXRoaXMub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtKLmFwcGVuZENoaWxkKHRoaXMuY2xvbmVOb2RlKHRydWUpKTtJPUouaW5uZXJIVE1MfXJldHVybiBvLmNsZWFuKFtJLnJlcGxhY2UoLyBqUXVlcnlcZCs9Iig/OlxkK3xudWxsKSIvZywiIikucmVwbGFjZSgvXlxzKi8sIiIpXSlbMF19ZWxzZXtyZXR1cm4gdGhpcy5jbG9uZU5vZGUodHJ1ZSl9fSk7aWYoRz09PXRydWUpe3ZhciBIPXRoaXMuZmluZCgiKiIpLmFuZFNlbGYoKSxGPTA7RS5maW5kKCIqIikuYW5kU2VsZigpLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVOYW1lIT09SFtGXS5ub2RlTmFtZSl7cmV0dXJufXZhciBJPW8uZGF0YShIW0ZdLCJldmVudHMiKTtmb3IodmFyIEsgaW4gSSl7Zm9yKHZhciBKIGluIElbS10pe28uZXZlbnQuYWRkKHRoaXMsSyxJW0tdW0pdLElbS11bSl0uZGF0YSl9fUYrK30pfXJldHVybiBFfSxmaWx0ZXI6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8uaXNGdW5jdGlvbihFKSYmby5ncmVwKHRoaXMsZnVuY3Rpb24oRyxGKXtyZXR1cm4gRS5jYWxsKEcsRil9KXx8by5tdWx0aUZpbHRlcihFLG8uZ3JlcCh0aGlzLGZ1bmN0aW9uKEYpe3JldHVybiBGLm5vZGVUeXBlPT09MX0pKSwiZmlsdGVyIixFKX0sY2xvc2VzdDpmdW5jdGlvbihFKXt2YXIgRz1vLmV4cHIubWF0Y2guUE9TLnRlc3QoRSk/byhFKTpudWxsLEY9MDtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgSD10aGlzO3doaWxlKEgmJkgub3duZXJEb2N1bWVudCl7aWYoRz9HLmluZGV4KEgpPi0xOm8oSCkuaXMoRSkpe28uZGF0YShILCJjbG9zZXN0IixGKTtyZXR1cm4gSH1IPUgucGFyZW50Tm9kZTtGKyt9fSl9LG5vdDpmdW5jdGlvbihFKXtpZih0eXBlb2YgRT09PSJzdHJpbmciKXtpZihmLnRlc3QoRSkpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLm11bHRpRmlsdGVyKEUsdGhpcyx0cnVlKSwibm90IixFKX1lbHNle0U9by5tdWx0aUZpbHRlcihFLHRoaXMpfX12YXIgRj1FLmxlbmd0aCYmRVtFLmxlbmd0aC0xXSE9PWcmJiFFLm5vZGVUeXBlO3JldHVybiB0aGlzLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiBGP28uaW5BcnJheSh0aGlzLEUpPDA6dGhpcyE9RX0pfSxhZGQ6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8udW5pcXVlKG8ubWVyZ2UodGhpcy5nZXQoKSx0eXBlb2YgRT09PSJzdHJpbmciP28oRSk6by5tYWtlQXJyYXkoRSkpKSl9LGlzOmZ1bmN0aW9uKEUpe3JldHVybiAhIUUmJm8ubXVsdGlGaWx0ZXIoRSx0aGlzKS5sZW5ndGg+MH0saGFzQ2xhc3M6ZnVuY3Rpb24oRSl7cmV0dXJuICEhRSYmdGhpcy5pcygiLiIrRSl9LHZhbDpmdW5jdGlvbihLKXtpZihLPT09Zyl7dmFyIEU9dGhpc1swXTtpZihFKXtpZihvLm5vZGVOYW1lKEUsIm9wdGlvbiIpKXtyZXR1cm4oRS5hdHRyaWJ1dGVzLnZhbHVlfHx7fSkuc3BlY2lmaWVkP0UudmFsdWU6RS50ZXh0fWlmKG8ubm9kZU5hbWUoRSwic2VsZWN0Iikpe3ZhciBJPUUuc2VsZWN0ZWRJbmRleCxMPVtdLE09RS5vcHRpb25zLEg9RS50eXBlPT0ic2VsZWN0LW9uZSI7aWYoSTwwKXtyZXR1cm4gbnVsbH1mb3IodmFyIEY9SD9JOjAsSj1IP0krMTpNLmxlbmd0aDtGPEo7RisrKXt2YXIgRz1NW0ZdO2lmKEcuc2VsZWN0ZWQpe0s9byhHKS52YWwoKTtpZihIKXtyZXR1cm4gS31MLnB1c2goSyl9fXJldHVybiBMfXJldHVybihFLnZhbHVlfHwiIikucmVwbGFjZSgvXHIvZywiIil9cmV0dXJuIGd9aWYodHlwZW9mIEs9PT0ibnVtYmVyIil7Sys9IiJ9cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKHRoaXMubm9kZVR5cGUhPTEpe3JldHVybn1pZihvLmlzQXJyYXkoSykmJi9yYWRpb3xjaGVja2JveC8udGVzdCh0aGlzLnR5cGUpKXt0aGlzLmNoZWNrZWQ9KG8uaW5BcnJheSh0aGlzLnZhbHVlLEspPj0wfHxvLmluQXJyYXkodGhpcy5uYW1lLEspPj0wKX1lbHNle2lmKG8ubm9kZU5hbWUodGhpcywic2VsZWN0Iikpe3ZhciBOPW8ubWFrZUFycmF5KEspO28oIm9wdGlvbiIsdGhpcykuZWFjaChmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWQ9KG8uaW5BcnJheSh0aGlzLnZhbHVlLE4pPj0wfHxvLmluQXJyYXkodGhpcy50ZXh0LE4pPj0wKX0pO2lmKCFOLmxlbmd0aCl7dGhpcy5zZWxlY3RlZEluZGV4PS0xfX1lbHNle3RoaXMudmFsdWU9S319fSl9LGh0bWw6ZnVuY3Rpb24oRSl7cmV0dXJuIEU9PT1nPyh0aGlzWzBdP3RoaXNbMF0uaW5uZXJIVE1MLnJlcGxhY2UoLyBqUXVlcnlcZCs9Iig/OlxkK3xudWxsKSIvZywiIik6bnVsbCk6dGhpcy5lbXB0eSgpLmFwcGVuZChFKX0scmVwbGFjZVdpdGg6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMuYWZ0ZXIoRSkucmVtb3ZlKCl9LGVxOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnNsaWNlKEUsK0UrMSl9LHNsaWNlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKEFycmF5LnByb3RvdHlwZS5zbGljZS5hcHBseSh0aGlzLGFyZ3VtZW50cyksInNsaWNlIixBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpLmpvaW4oIiwiKSl9LG1hcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tYXAodGhpcyxmdW5jdGlvbihHLEYpe3JldHVybiBFLmNhbGwoRyxGLEcpfSkpfSxhbmRTZWxmOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWRkKHRoaXMucHJldk9iamVjdCl9LGRvbU1hbmlwOmZ1bmN0aW9uKEosTSxMKXtpZih0aGlzWzBdKXt2YXIgST0odGhpc1swXS5vd25lckRvY3VtZW50fHx0aGlzWzBdKS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksRj1vLmNsZWFuKEosKHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1swXSksSSksSD1JLmZpcnN0Q2hpbGQ7aWYoSCl7Zm9yKHZhciBHPTAsRT10aGlzLmxlbmd0aDtHPEU7RysrKXtMLmNhbGwoSyh0aGlzW0ddLEgpLHRoaXMubGVuZ3RoPjF8fEc+MD9JLmNsb25lTm9kZSh0cnVlKTpJKX19aWYoRil7by5lYWNoKEYseil9fXJldHVybiB0aGlzO2Z1bmN0aW9uIEsoTixPKXtyZXR1cm4gTSYmby5ub2RlTmFtZShOLCJ0YWJsZSIpJiZvLm5vZGVOYW1lKE8sInRyIik/KE4uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInRib2R5IilbMF18fE4uYXBwZW5kQ2hpbGQoTi5vd25lckRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRib2R5IikpKTpOfX19O28uZm4uaW5pdC5wcm90b3R5cGU9by5mbjtmdW5jdGlvbiB6KEUsRil7aWYoRi5zcmMpe28uYWpheCh7dXJsOkYuc3JjLGFzeW5jOmZhbHNlLGRhdGFUeXBlOiJzY3JpcHQifSl9ZWxzZXtvLmdsb2JhbEV2YWwoRi50ZXh0fHxGLnRleHRDb250ZW50fHxGLmlubmVySFRNTHx8IiIpfWlmKEYucGFyZW50Tm9kZSl7Ri5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEYpfX1mdW5jdGlvbiBlKCl7cmV0dXJuICtuZXcgRGF0ZX1vLmV4dGVuZD1vLmZuLmV4dGVuZD1mdW5jdGlvbigpe3ZhciBKPWFyZ3VtZW50c1swXXx8e30sSD0xLEk9YXJndW1lbnRzLmxlbmd0aCxFPWZhbHNlLEc7aWYodHlwZW9mIEo9PT0iYm9vbGVhbiIpe0U9SjtKPWFyZ3VtZW50c1sxXXx8e307SD0yfWlmKHR5cGVvZiBKIT09Im9iamVjdCImJiFvLmlzRnVuY3Rpb24oSikpe0o9e319aWYoST09SCl7Sj10aGlzOy0tSH1mb3IoO0g8STtIKyspe2lmKChHPWFyZ3VtZW50c1tIXSkhPW51bGwpe2Zvcih2YXIgRiBpbiBHKXt2YXIgSz1KW0ZdLEw9R1tGXTtpZihKPT09TCl7Y29udGludWV9aWYoRSYmTCYmdHlwZW9mIEw9PT0ib2JqZWN0IiYmIUwubm9kZVR5cGUpe0pbRl09by5leHRlbmQoRSxLfHwoTC5sZW5ndGghPW51bGw/W106e30pLEwpfWVsc2V7aWYoTCE9PWcpe0pbRl09TH19fX19cmV0dXJuIEp9O3ZhciBiPS96LT9pbmRleHxmb250LT93ZWlnaHR8b3BhY2l0eXx6b29tfGxpbmUtP2hlaWdodC9pLHE9ZG9jdW1lbnQuZGVmYXVsdFZpZXd8fHt9LHM9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztvLmV4dGVuZCh7bm9Db25mbGljdDpmdW5jdGlvbihFKXtsLiQ9cDtpZihFKXtsLmpRdWVyeT15fXJldHVybiBvfSxpc0Z1bmN0aW9uOmZ1bmN0aW9uKEUpe3JldHVybiBzLmNhbGwoRSk9PT0iW29iamVjdCBGdW5jdGlvbl0ifSxpc0FycmF5OmZ1bmN0aW9uKEUpe3JldHVybiBzLmNhbGwoRSk9PT0iW29iamVjdCBBcnJheV0ifSxpc1hNTERvYzpmdW5jdGlvbihFKXtyZXR1cm4gRS5ub2RlVHlwZT09PTkmJkUuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lIT09IkhUTUwifHwhIUUub3duZXJEb2N1bWVudCYmby5pc1hNTERvYyhFLm93bmVyRG9jdW1lbnQpfSxnbG9iYWxFdmFsOmZ1bmN0aW9uKEcpe2lmKEcmJi9cUy8udGVzdChHKSl7dmFyIEY9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LEU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7RS50eXBlPSJ0ZXh0L2phdmFzY3JpcHQiO2lmKG8uc3VwcG9ydC5zY3JpcHRFdmFsKXtFLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKEcpKX1lbHNle0UudGV4dD1HfUYuaW5zZXJ0QmVmb3JlKEUsRi5maXJzdENoaWxkKTtGLnJlbW92ZUNoaWxkKEUpfX0sbm9kZU5hbWU6ZnVuY3Rpb24oRixFKXtyZXR1cm4gRi5ub2RlTmFtZSYmRi5ub2RlTmFtZS50b1VwcGVyQ2FzZSgpPT1FLnRvVXBwZXJDYXNlKCl9LGVhY2g6ZnVuY3Rpb24oRyxLLEYpe3ZhciBFLEg9MCxJPUcubGVuZ3RoO2lmKEYpe2lmKEk9PT1nKXtmb3IoRSBpbiBHKXtpZihLLmFwcGx5KEdbRV0sRik9PT1mYWxzZSl7YnJlYWt9fX1lbHNle2Zvcig7SDxJOyl7aWYoSy5hcHBseShHW0grK10sRik9PT1mYWxzZSl7YnJlYWt9fX19ZWxzZXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYoSy5jYWxsKEdbRV0sRSxHW0VdKT09PWZhbHNlKXticmVha319fWVsc2V7Zm9yKHZhciBKPUdbMF07SDxJJiZLLmNhbGwoSixILEopIT09ZmFsc2U7Sj1HWysrSF0pe319fXJldHVybiBHfSxwcm9wOmZ1bmN0aW9uKEgsSSxHLEYsRSl7aWYoby5pc0Z1bmN0aW9uKEkpKXtJPUkuY2FsbChILEYpfXJldHVybiB0eXBlb2YgST09PSJudW1iZXIiJiZHPT0iY3VyQ1NTIiYmIWIudGVzdChFKT9JKyJweCI6SX0sY2xhc3NOYW1lOnthZGQ6ZnVuY3Rpb24oRSxGKXtvLmVhY2goKEZ8fCIiKS5zcGxpdCgvXHMrLyksZnVuY3Rpb24oRyxIKXtpZihFLm5vZGVUeXBlPT0xJiYhby5jbGFzc05hbWUuaGFzKEUuY2xhc3NOYW1lLEgpKXtFLmNsYXNzTmFtZSs9KEUuY2xhc3NOYW1lPyIgIjoiIikrSH19KX0scmVtb3ZlOmZ1bmN0aW9uKEUsRil7aWYoRS5ub2RlVHlwZT09MSl7RS5jbGFzc05hbWU9RiE9PWc/by5ncmVwKEUuY2xhc3NOYW1lLnNwbGl0KC9ccysvKSxmdW5jdGlvbihHKXtyZXR1cm4gIW8uY2xhc3NOYW1lLmhhcyhGLEcpfSkuam9pbigiICIpOiIifX0saGFzOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIEYmJm8uaW5BcnJheShFLChGLmNsYXNzTmFtZXx8RikudG9TdHJpbmcoKS5zcGxpdCgvXHMrLykpPi0xfX0sc3dhcDpmdW5jdGlvbihILEcsSSl7dmFyIEU9e307Zm9yKHZhciBGIGluIEcpe0VbRl09SC5zdHlsZVtGXTtILnN0eWxlW0ZdPUdbRl19SS5jYWxsKEgpO2Zvcih2YXIgRiBpbiBHKXtILnN0eWxlW0ZdPUVbRl19fSxjc3M6ZnVuY3Rpb24oSCxGLEosRSl7aWYoRj09IndpZHRoInx8Rj09ImhlaWdodCIpe3ZhciBMLEc9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LEs9Rj09IndpZHRoIj9bIkxlZnQiLCJSaWdodCJdOlsiVG9wIiwiQm90dG9tIl07ZnVuY3Rpb24gSSgpe0w9Rj09IndpZHRoIj9ILm9mZnNldFdpZHRoOkgub2Zmc2V0SGVpZ2h0O2lmKEU9PT0iYm9yZGVyIil7cmV0dXJufW8uZWFjaChLLGZ1bmN0aW9uKCl7aWYoIUUpe0wtPXBhcnNlRmxvYXQoby5jdXJDU1MoSCwicGFkZGluZyIrdGhpcyx0cnVlKSl8fDB9aWYoRT09PSJtYXJnaW4iKXtMKz1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsIm1hcmdpbiIrdGhpcyx0cnVlKSl8fDB9ZWxzZXtMLT1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsImJvcmRlciIrdGhpcysiV2lkdGgiLHRydWUpKXx8MH19KX1pZihILm9mZnNldFdpZHRoIT09MCl7SSgpfWVsc2V7by5zd2FwKEgsRyxJKX1yZXR1cm4gTWF0aC5tYXgoMCxNYXRoLnJvdW5kKEwpKX1yZXR1cm4gby5jdXJDU1MoSCxGLEopfSxjdXJDU1M6ZnVuY3Rpb24oSSxGLEcpe3ZhciBMLEU9SS5zdHlsZTtpZihGPT0ib3BhY2l0eSImJiFvLnN1cHBvcnQub3BhY2l0eSl7TD1vLmF0dHIoRSwib3BhY2l0eSIpO3JldHVybiBMPT0iIj8iMSI6TH1pZihGLm1hdGNoKC9mbG9hdC9pKSl7Rj13fWlmKCFHJiZFJiZFW0ZdKXtMPUVbRl19ZWxzZXtpZihxLmdldENvbXB1dGVkU3R5bGUpe2lmKEYubWF0Y2goL2Zsb2F0L2kpKXtGPSJmbG9hdCJ9Rj1GLnJlcGxhY2UoLyhbQS1aXSkvZywiLSQxIikudG9Mb3dlckNhc2UoKTt2YXIgTT1xLmdldENvbXB1dGVkU3R5bGUoSSxudWxsKTtpZihNKXtMPU0uZ2V0UHJvcGVydHlWYWx1ZShGKX1pZihGPT0ib3BhY2l0eSImJkw9PSIiKXtMPSIxIn19ZWxzZXtpZihJLmN1cnJlbnRTdHlsZSl7dmFyIEo9Ri5yZXBsYWNlKC9cLShcdykvZyxmdW5jdGlvbihOLE8pe3JldHVybiBPLnRvVXBwZXJDYXNlKCl9KTtMPUkuY3VycmVudFN0eWxlW0ZdfHxJLmN1cnJlbnRTdHlsZVtKXTtpZighL15cZCsocHgpPyQvaS50ZXN0KEwpJiYvXlxkLy50ZXN0KEwpKXt2YXIgSD1FLmxlZnQsSz1JLnJ1bnRpbWVTdHlsZS5sZWZ0O0kucnVudGltZVN0eWxlLmxlZnQ9SS5jdXJyZW50U3R5bGUubGVmdDtFLmxlZnQ9THx8MDtMPUUucGl4ZWxMZWZ0KyJweCI7RS5sZWZ0PUg7SS5ydW50aW1lU3R5bGUubGVmdD1LfX19fXJldHVybiBMfSxjbGVhbjpmdW5jdGlvbihGLEssSSl7Sz1LfHxkb2N1bWVudDtpZih0eXBlb2YgSy5jcmVhdGVFbGVtZW50PT09InVuZGVmaW5lZCIpe0s9Sy5vd25lckRvY3VtZW50fHxLWzBdJiZLWzBdLm93bmVyRG9jdW1lbnR8fGRvY3VtZW50fWlmKCFJJiZGLmxlbmd0aD09PTEmJnR5cGVvZiBGWzBdPT09InN0cmluZyIpe3ZhciBIPS9ePChcdyspXHMqXC8/PiQvLmV4ZWMoRlswXSk7aWYoSCl7cmV0dXJuW0suY3JlYXRlRWxlbWVudChIWzFdKV19fXZhciBHPVtdLEU9W10sTD1LLmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uZWFjaChGLGZ1bmN0aW9uKFAsUyl7aWYodHlwZW9mIFM9PT0ibnVtYmVyIil7Uys9IiJ9aWYoIVMpe3JldHVybn1pZih0eXBlb2YgUz09PSJzdHJpbmciKXtTPVMucmVwbGFjZSgvKDwoXHcrKVtePl0qPylcLz4vZyxmdW5jdGlvbihVLFYsVCl7cmV0dXJuIFQubWF0Y2goL14oYWJicnxicnxjb2x8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbXxocnxhcmVhfGVtYmVkKSQvaSk/VTpWKyI+PC8iK1QrIj4ifSk7dmFyIE89Uy5yZXBsYWNlKC9eXHMrLywiIikuc3Vic3RyaW5nKDAsMTApLnRvTG93ZXJDYXNlKCk7dmFyIFE9IU8uaW5kZXhPZigiPG9wdCIpJiZbMSwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPiIsIjwvc2VsZWN0PiJdfHwhTy5pbmRleE9mKCI8bGVnIikmJlsxLCI8ZmllbGRzZXQ+IiwiPC9maWVsZHNldD4iXXx8Ty5tYXRjaCgvXjwodGhlYWR8dGJvZHl8dGZvb3R8Y29sZ3xjYXApLykmJlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXXx8IU8uaW5kZXhPZigiPHRyIikmJlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXXx8KCFPLmluZGV4T2YoIjx0ZCIpfHwhTy5pbmRleE9mKCI8dGgiKSkmJlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXXx8IU8uaW5kZXhPZigiPGNvbCIpJiZbMiwiPHRhYmxlPjx0Ym9keT48L3Rib2R5Pjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il18fCFvLnN1cHBvcnQuaHRtbFNlcmlhbGl6ZSYmWzEsImRpdjxkaXY+IiwiPC9kaXY+Il18fFswLCIiLCIiXTtMLmlubmVySFRNTD1RWzFdK1MrUVsyXTt3aGlsZShRWzBdLS0pe0w9TC5sYXN0Q2hpbGR9aWYoIW8uc3VwcG9ydC50Ym9keSl7dmFyIFI9Lzx0Ym9keS9pLnRlc3QoUyksTj0hTy5pbmRleE9mKCI8dGFibGUiKSYmIVI/TC5maXJzdENoaWxkJiZMLmZpcnN0Q2hpbGQuY2hpbGROb2RlczpRWzFdPT0iPHRhYmxlPiImJiFSP0wuY2hpbGROb2RlczpbXTtmb3IodmFyIE09Ti5sZW5ndGgtMTtNPj0wOy0tTSl7aWYoby5ub2RlTmFtZShOW01dLCJ0Ym9keSIpJiYhTltNXS5jaGlsZE5vZGVzLmxlbmd0aCl7TltNXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKE5bTV0pfX19aWYoIW8uc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSYmL15ccy8udGVzdChTKSl7TC5pbnNlcnRCZWZvcmUoSy5jcmVhdGVUZXh0Tm9kZShTLm1hdGNoKC9eXHMqLylbMF0pLEwuZmlyc3RDaGlsZCl9Uz1vLm1ha2VBcnJheShMLmNoaWxkTm9kZXMpfWlmKFMubm9kZVR5cGUpe0cucHVzaChTKX1lbHNle0c9by5tZXJnZShHLFMpfX0pO2lmKEkpe2Zvcih2YXIgSj0wO0dbSl07SisrKXtpZihvLm5vZGVOYW1lKEdbSl0sInNjcmlwdCIpJiYoIUdbSl0udHlwZXx8R1tKXS50eXBlLnRvTG93ZXJDYXNlKCk9PT0idGV4dC9qYXZhc2NyaXB0Iikpe0UucHVzaChHW0pdLnBhcmVudE5vZGU/R1tKXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKEdbSl0pOkdbSl0pfWVsc2V7aWYoR1tKXS5ub2RlVHlwZT09PTEpe0cuc3BsaWNlLmFwcGx5KEcsW0orMSwwXS5jb25jYXQoby5tYWtlQXJyYXkoR1tKXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IikpKSl9SS5hcHBlbmRDaGlsZChHW0pdKX19cmV0dXJuIEV9cmV0dXJuIEd9LGF0dHI6ZnVuY3Rpb24oSixHLEspe2lmKCFKfHxKLm5vZGVUeXBlPT0zfHxKLm5vZGVUeXBlPT04KXtyZXR1cm4gZ312YXIgSD0hby5pc1hNTERvYyhKKSxMPUshPT1nO0c9SCYmby5wcm9wc1tHXXx8RztpZihKLnRhZ05hbWUpe3ZhciBGPS9ocmVmfHNyY3xzdHlsZS8udGVzdChHKTtpZihHPT0ic2VsZWN0ZWQiJiZKLnBhcmVudE5vZGUpe0oucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4fWlmKEcgaW4gSiYmSCYmIUYpe2lmKEwpe2lmKEc9PSJ0eXBlIiYmby5ub2RlTmFtZShKLCJpbnB1dCIpJiZKLnBhcmVudE5vZGUpe3Rocm93InR5cGUgcHJvcGVydHkgY2FuJ3QgYmUgY2hhbmdlZCJ9SltHXT1LfWlmKG8ubm9kZU5hbWUoSiwiZm9ybSIpJiZKLmdldEF0dHJpYnV0ZU5vZGUoRykpe3JldHVybiBKLmdldEF0dHJpYnV0ZU5vZGUoRykubm9kZVZhbHVlfWlmKEc9PSJ0YWJJbmRleCIpe3ZhciBJPUouZ2V0QXR0cmlidXRlTm9kZSgidGFiSW5kZXgiKTtyZXR1cm4gSSYmSS5zcGVjaWZpZWQ/SS52YWx1ZTpKLm5vZGVOYW1lLm1hdGNoKC8oYnV0dG9ufGlucHV0fG9iamVjdHxzZWxlY3R8dGV4dGFyZWEpL2kpPzA6Si5ub2RlTmFtZS5tYXRjaCgvXihhfGFyZWEpJC9pKSYmSi5ocmVmPzA6Z31yZXR1cm4gSltHXX1pZighby5zdXBwb3J0LnN0eWxlJiZIJiZHPT0ic3R5bGUiKXtyZXR1cm4gby5hdHRyKEouc3R5bGUsImNzc1RleHQiLEspfWlmKEwpe0ouc2V0QXR0cmlidXRlKEcsIiIrSyl9dmFyIEU9IW8uc3VwcG9ydC5ocmVmTm9ybWFsaXplZCYmSCYmRj9KLmdldEF0dHJpYnV0ZShHLDIpOkouZ2V0QXR0cmlidXRlKEcpO3JldHVybiBFPT09bnVsbD9nOkV9aWYoIW8uc3VwcG9ydC5vcGFjaXR5JiZHPT0ib3BhY2l0eSIpe2lmKEwpe0ouem9vbT0xO0ouZmlsdGVyPShKLmZpbHRlcnx8IiIpLnJlcGxhY2UoL2FscGhhXChbXildKlwpLywiIikrKHBhcnNlSW50KEspKyIiPT0iTmFOIj8iIjoiYWxwaGEob3BhY2l0eT0iK0sqMTAwKyIpIil9cmV0dXJuIEouZmlsdGVyJiZKLmZpbHRlci5pbmRleE9mKCJvcGFjaXR5PSIpPj0wPyhwYXJzZUZsb2F0KEouZmlsdGVyLm1hdGNoKC9vcGFjaXR5PShbXildKikvKVsxXSkvMTAwKSsiIjoiIn1HPUcucmVwbGFjZSgvLShbYS16XSkvaWcsZnVuY3Rpb24oTSxOKXtyZXR1cm4gTi50b1VwcGVyQ2FzZSgpfSk7aWYoTCl7SltHXT1LfXJldHVybiBKW0ddfSx0cmltOmZ1bmN0aW9uKEUpe3JldHVybihFfHwiIikucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfSxtYWtlQXJyYXk6ZnVuY3Rpb24oRyl7dmFyIEU9W107aWYoRyE9bnVsbCl7dmFyIEY9Ry5sZW5ndGg7aWYoRj09bnVsbHx8dHlwZW9mIEc9PT0ic3RyaW5nInx8by5pc0Z1bmN0aW9uKEcpfHxHLnNldEludGVydmFsKXtFWzBdPUd9ZWxzZXt3aGlsZShGKXtFWy0tRl09R1tGXX19fXJldHVybiBFfSxpbkFycmF5OmZ1bmN0aW9uKEcsSCl7Zm9yKHZhciBFPTAsRj1ILmxlbmd0aDtFPEY7RSsrKXtpZihIW0VdPT09Ryl7cmV0dXJuIEV9fXJldHVybiAtMX0sbWVyZ2U6ZnVuY3Rpb24oSCxFKXt2YXIgRj0wLEcsST1ILmxlbmd0aDtpZighby5zdXBwb3J0LmdldEFsbCl7d2hpbGUoKEc9RVtGKytdKSE9bnVsbCl7aWYoRy5ub2RlVHlwZSE9OCl7SFtJKytdPUd9fX1lbHNle3doaWxlKChHPUVbRisrXSkhPW51bGwpe0hbSSsrXT1HfX1yZXR1cm4gSH0sdW5pcXVlOmZ1bmN0aW9uKEspe3ZhciBGPVtdLEU9e307dHJ5e2Zvcih2YXIgRz0wLEg9Sy5sZW5ndGg7RzxIO0crKyl7dmFyIEo9by5kYXRhKEtbR10pO2lmKCFFW0pdKXtFW0pdPXRydWU7Ri5wdXNoKEtbR10pfX19Y2F0Y2goSSl7Rj1LfXJldHVybiBGfSxncmVwOmZ1bmN0aW9uKEYsSixFKXt2YXIgRz1bXTtmb3IodmFyIEg9MCxJPUYubGVuZ3RoO0g8STtIKyspe2lmKCFFIT0hSihGW0hdLEgpKXtHLnB1c2goRltIXSl9fXJldHVybiBHfSxtYXA6ZnVuY3Rpb24oRSxKKXt2YXIgRj1bXTtmb3IodmFyIEc9MCxIPUUubGVuZ3RoO0c8SDtHKyspe3ZhciBJPUooRVtHXSxHKTtpZihJIT1udWxsKXtGW0YubGVuZ3RoXT1JfX1yZXR1cm4gRi5jb25jYXQuYXBwbHkoW10sRil9fSk7dmFyIEM9bmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpO28uYnJvd3Nlcj17dmVyc2lvbjooQy5tYXRjaCgvLisoPzpydnxpdHxyYXxpZSlbXC86IF0oW1xkLl0rKS8pfHxbMCwiMCJdKVsxXSxzYWZhcmk6L3dlYmtpdC8udGVzdChDKSxvcGVyYTovb3BlcmEvLnRlc3QoQyksbXNpZTovbXNpZS8udGVzdChDKSYmIS9vcGVyYS8udGVzdChDKSxtb3ppbGxhOi9tb3ppbGxhLy50ZXN0KEMpJiYhLyhjb21wYXRpYmxlfHdlYmtpdCkvLnRlc3QoQyl9O28uZWFjaCh7cGFyZW50OmZ1bmN0aW9uKEUpe3JldHVybiBFLnBhcmVudE5vZGV9LHBhcmVudHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8uZGlyKEUsInBhcmVudE5vZGUiKX0sbmV4dDpmdW5jdGlvbihFKXtyZXR1cm4gby5udGgoRSwyLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKEUpe3JldHVybiBvLm50aChFLDIsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJuZXh0U2libGluZyIpfSxwcmV2QWxsOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwcmV2aW91c1NpYmxpbmciKX0sc2libGluZ3M6ZnVuY3Rpb24oRSl7cmV0dXJuIG8uc2libGluZyhFLnBhcmVudE5vZGUuZmlyc3RDaGlsZCxFKX0sY2hpbGRyZW46ZnVuY3Rpb24oRSl7cmV0dXJuIG8uc2libGluZyhFLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihFKXtyZXR1cm4gby5ub2RlTmFtZShFLCJpZnJhbWUiKT9FLmNvbnRlbnREb2N1bWVudHx8RS5jb250ZW50V2luZG93LmRvY3VtZW50Om8ubWFrZUFycmF5KEUuY2hpbGROb2Rlcyl9fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyl7dmFyIEg9by5tYXAodGhpcyxGKTtpZihHJiZ0eXBlb2YgRz09InN0cmluZyIpe0g9by5tdWx0aUZpbHRlcihHLEgpfXJldHVybiB0aGlzLnB1c2hTdGFjayhvLnVuaXF1ZShIKSxFLEcpfX0pO28uZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKEUsRil7by5mbltFXT1mdW5jdGlvbihHKXt2YXIgSj1bXSxMPW8oRyk7Zm9yKHZhciBLPTAsSD1MLmxlbmd0aDtLPEg7SysrKXt2YXIgST0oSz4wP3RoaXMuY2xvbmUodHJ1ZSk6dGhpcykuZ2V0KCk7by5mbltGXS5hcHBseShvKExbS10pLEkpO0o9Si5jb25jYXQoSSl9cmV0dXJuIHRoaXMucHVzaFN0YWNrKEosRSxHKX19KTtvLmVhY2goe3JlbW92ZUF0dHI6ZnVuY3Rpb24oRSl7by5hdHRyKHRoaXMsRSwiIik7aWYodGhpcy5ub2RlVHlwZT09MSl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoRSl9fSxhZGRDbGFzczpmdW5jdGlvbihFKXtvLmNsYXNzTmFtZS5hZGQodGhpcyxFKX0scmVtb3ZlQ2xhc3M6ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUucmVtb3ZlKHRoaXMsRSl9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKEYsRSl7aWYodHlwZW9mIEUhPT0iYm9vbGVhbiIpe0U9IW8uY2xhc3NOYW1lLmhhcyh0aGlzLEYpfW8uY2xhc3NOYW1lW0U/ImFkZCI6InJlbW92ZSJdKHRoaXMsRil9LHJlbW92ZTpmdW5jdGlvbihFKXtpZighRXx8by5maWx0ZXIoRSxbdGhpc10pLmxlbmd0aCl7bygiKiIsdGhpcykuYWRkKFt0aGlzXSkuZWFjaChmdW5jdGlvbigpe28uZXZlbnQucmVtb3ZlKHRoaXMpO28ucmVtb3ZlRGF0YSh0aGlzKX0pO2lmKHRoaXMucGFyZW50Tm9kZSl7dGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMpfX19LGVtcHR5OmZ1bmN0aW9uKCl7byh0aGlzKS5jaGlsZHJlbigpLnJlbW92ZSgpO3doaWxlKHRoaXMuZmlyc3RDaGlsZCl7dGhpcy5yZW1vdmVDaGlsZCh0aGlzLmZpcnN0Q2hpbGQpfX19LGZ1bmN0aW9uKEUsRil7by5mbltFXT1mdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goRixhcmd1bWVudHMpfX0pO2Z1bmN0aW9uIGooRSxGKXtyZXR1cm4gRVswXSYmcGFyc2VJbnQoby5jdXJDU1MoRVswXSxGLHRydWUpLDEwKXx8MH12YXIgaD0ialF1ZXJ5IitlKCksdj0wLEE9e307by5leHRlbmQoe2NhY2hlOnt9LGRhdGE6ZnVuY3Rpb24oRixFLEcpe0Y9Rj09bD9BOkY7dmFyIEg9RltoXTtpZighSCl7SD1GW2hdPSsrdn1pZihFJiYhby5jYWNoZVtIXSl7by5jYWNoZVtIXT17fX1pZihHIT09Zyl7by5jYWNoZVtIXVtFXT1HfXJldHVybiBFP28uY2FjaGVbSF1bRV06SH0scmVtb3ZlRGF0YTpmdW5jdGlvbihGLEUpe0Y9Rj09bD9BOkY7dmFyIEg9RltoXTtpZihFKXtpZihvLmNhY2hlW0hdKXtkZWxldGUgby5jYWNoZVtIXVtFXTtFPSIiO2ZvcihFIGluIG8uY2FjaGVbSF0pe2JyZWFrfWlmKCFFKXtvLnJlbW92ZURhdGEoRil9fX1lbHNle3RyeXtkZWxldGUgRltoXX1jYXRjaChHKXtpZihGLnJlbW92ZUF0dHJpYnV0ZSl7Ri5yZW1vdmVBdHRyaWJ1dGUoaCl9fWRlbGV0ZSBvLmNhY2hlW0hdfX0scXVldWU6ZnVuY3Rpb24oRixFLEgpe2lmKEYpe0U9KEV8fCJmeCIpKyJxdWV1ZSI7dmFyIEc9by5kYXRhKEYsRSk7aWYoIUd8fG8uaXNBcnJheShIKSl7Rz1vLmRhdGEoRixFLG8ubWFrZUFycmF5KEgpKX1lbHNle2lmKEgpe0cucHVzaChIKX19fXJldHVybiBHfSxkZXF1ZXVlOmZ1bmN0aW9uKEgsRyl7dmFyIEU9by5xdWV1ZShILEcpLEY9RS5zaGlmdCgpO2lmKCFHfHxHPT09ImZ4Iil7Rj1FWzBdfWlmKEYhPT1nKXtGLmNhbGwoSCl9fX0pO28uZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKEUsRyl7dmFyIEg9RS5zcGxpdCgiLiIpO0hbMV09SFsxXT8iLiIrSFsxXToiIjtpZihHPT09Zyl7dmFyIEY9dGhpcy50cmlnZ2VySGFuZGxlcigiZ2V0RGF0YSIrSFsxXSsiISIsW0hbMF1dKTtpZihGPT09ZyYmdGhpcy5sZW5ndGgpe0Y9by5kYXRhKHRoaXNbMF0sRSl9cmV0dXJuIEY9PT1nJiZIWzFdP3RoaXMuZGF0YShIWzBdKTpGfWVsc2V7cmV0dXJuIHRoaXMudHJpZ2dlcigic2V0RGF0YSIrSFsxXSsiISIsW0hbMF0sR10pLmVhY2goZnVuY3Rpb24oKXtvLmRhdGEodGhpcyxFLEcpfSl9fSxyZW1vdmVEYXRhOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLnJlbW92ZURhdGEodGhpcyxFKX0pfSxxdWV1ZTpmdW5jdGlvbihFLEYpe2lmKHR5cGVvZiBFIT09InN0cmluZyIpe0Y9RTtFPSJmeCJ9aWYoRj09PWcpe3JldHVybiBvLnF1ZXVlKHRoaXNbMF0sRSl9cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBHPW8ucXVldWUodGhpcyxFLEYpO2lmKEU9PSJmeCImJkcubGVuZ3RoPT0xKXtHWzBdLmNhbGwodGhpcyl9fSl9LGRlcXVldWU6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe28uZGVxdWV1ZSh0aGlzLEUpfSl9fSk7DQovKg0KICogU2l6emxlIENTUyBTZWxlY3RvciBFbmdpbmUgLSB2MC45LjMNCiAqICBDb3B5cmlnaHQgMjAwOSwgVGhlIERvam8gRm91bmRhdGlvbg0KICogIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNlcy4NCiAqICBNb3JlIGluZm9ybWF0aW9uOiBodHRwOi8vc2l6emxlanMuY29tLw0KICovDQooZnVuY3Rpb24oKXt2YXIgUj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/L2csTD0wLEg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj1mdW5jdGlvbihZLFUsYWIsYWMpe2FiPWFifHxbXTtVPVV8fGRvY3VtZW50O2lmKFUubm9kZVR5cGUhPT0xJiZVLm5vZGVUeXBlIT09OSl7cmV0dXJuW119aWYoIVl8fHR5cGVvZiBZIT09InN0cmluZyIpe3JldHVybiBhYn12YXIgWj1bXSxXLGFmLGFpLFQsYWQsVixYPXRydWU7Ui5sYXN0SW5kZXg9MDt3aGlsZSgoVz1SLmV4ZWMoWSkpIT09bnVsbCl7Wi5wdXNoKFdbMV0pO2lmKFdbMl0pe1Y9UmVnRXhwLnJpZ2h0Q29udGV4dDticmVha319aWYoWi5sZW5ndGg+MSYmTS5leGVjKFkpKXtpZihaLmxlbmd0aD09PTImJkkucmVsYXRpdmVbWlswXV0pe2FmPUooWlswXStaWzFdLFUpfWVsc2V7YWY9SS5yZWxhdGl2ZVtaWzBdXT9bVV06RihaLnNoaWZ0KCksVSk7d2hpbGUoWi5sZW5ndGgpe1k9Wi5zaGlmdCgpO2lmKEkucmVsYXRpdmVbWV0pe1krPVouc2hpZnQoKX1hZj1KKFksYWYpfX19ZWxzZXt2YXIgYWU9YWM/e2V4cHI6Wi5wb3AoKSxzZXQ6RShhYyl9OkYuZmluZChaLnBvcCgpLFoubGVuZ3RoPT09MSYmVS5wYXJlbnROb2RlP1UucGFyZW50Tm9kZTpVLFEoVSkpO2FmPUYuZmlsdGVyKGFlLmV4cHIsYWUuc2V0KTtpZihaLmxlbmd0aD4wKXthaT1FKGFmKX1lbHNle1g9ZmFsc2V9d2hpbGUoWi5sZW5ndGgpe3ZhciBhaD1aLnBvcCgpLGFnPWFoO2lmKCFJLnJlbGF0aXZlW2FoXSl7YWg9IiJ9ZWxzZXthZz1aLnBvcCgpfWlmKGFnPT1udWxsKXthZz1VfUkucmVsYXRpdmVbYWhdKGFpLGFnLFEoVSkpfX1pZighYWkpe2FpPWFmfWlmKCFhaSl7dGhyb3ciU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIisoYWh8fFkpfWlmKEguY2FsbChhaSk9PT0iW29iamVjdCBBcnJheV0iKXtpZighWCl7YWIucHVzaC5hcHBseShhYixhaSl9ZWxzZXtpZihVLm5vZGVUeXBlPT09MSl7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJihhaVthYV09PT10cnVlfHxhaVthYV0ubm9kZVR5cGU9PT0xJiZLKFUsYWlbYWFdKSkpe2FiLnB1c2goYWZbYWFdKX19fWVsc2V7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJmFpW2FhXS5ub2RlVHlwZT09PTEpe2FiLnB1c2goYWZbYWFdKX19fX19ZWxzZXtFKGFpLGFiKX1pZihWKXtGKFYsVSxhYixhYyk7aWYoRyl7aGFzRHVwbGljYXRlPWZhbHNlO2FiLnNvcnQoRyk7aWYoaGFzRHVwbGljYXRlKXtmb3IodmFyIGFhPTE7YWE8YWIubGVuZ3RoO2FhKyspe2lmKGFiW2FhXT09PWFiW2FhLTFdKXthYi5zcGxpY2UoYWEtLSwxKX19fX19cmV0dXJuIGFifTtGLm1hdGNoZXM9ZnVuY3Rpb24oVCxVKXtyZXR1cm4gRihULG51bGwsbnVsbCxVKX07Ri5maW5kPWZ1bmN0aW9uKGFhLFQsYWIpe3ZhciBaLFg7aWYoIWFhKXtyZXR1cm5bXX1mb3IodmFyIFc9MCxWPUkub3JkZXIubGVuZ3RoO1c8VjtXKyspe3ZhciBZPUkub3JkZXJbV10sWDtpZigoWD1JLm1hdGNoW1ldLmV4ZWMoYWEpKSl7dmFyIFU9UmVnRXhwLmxlZnRDb250ZXh0O2lmKFUuc3Vic3RyKFUubGVuZ3RoLTEpIT09IlxcIil7WFsxXT0oWFsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO1o9SS5maW5kW1ldKFgsVCxhYik7aWYoWiE9bnVsbCl7YWE9YWEucmVwbGFjZShJLm1hdGNoW1ldLCIiKTticmVha319fX1pZighWil7Wj1ULmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9cmV0dXJue3NldDpaLGV4cHI6YWF9fTtGLmZpbHRlcj1mdW5jdGlvbihhZCxhYyxhZyxXKXt2YXIgVj1hZCxhaT1bXSxhYT1hYyxZLFQsWj1hYyYmYWNbMF0mJlEoYWNbMF0pO3doaWxlKGFkJiZhYy5sZW5ndGgpe2Zvcih2YXIgYWIgaW4gSS5maWx0ZXIpe2lmKChZPUkubWF0Y2hbYWJdLmV4ZWMoYWQpKSE9bnVsbCl7dmFyIFU9SS5maWx0ZXJbYWJdLGFoLGFmO1Q9ZmFsc2U7aWYoYWE9PWFpKXthaT1bXX1pZihJLnByZUZpbHRlclthYl0pe1k9SS5wcmVGaWx0ZXJbYWJdKFksYWEsYWcsYWksVyxaKTtpZighWSl7VD1haD10cnVlfWVsc2V7aWYoWT09PXRydWUpe2NvbnRpbnVlfX19aWYoWSl7Zm9yKHZhciBYPTA7KGFmPWFhW1hdKSE9bnVsbDtYKyspe2lmKGFmKXthaD1VKGFmLFksWCxhYSk7dmFyIGFlPVdeISFhaDtpZihhZyYmYWghPW51bGwpe2lmKGFlKXtUPXRydWV9ZWxzZXthYVtYXT1mYWxzZX19ZWxzZXtpZihhZSl7YWkucHVzaChhZik7VD10cnVlfX19fX1pZihhaCE9PWcpe2lmKCFhZyl7YWE9YWl9YWQ9YWQucmVwbGFjZShJLm1hdGNoW2FiXSwiIik7aWYoIVQpe3JldHVybltdfWJyZWFrfX19aWYoYWQ9PVYpe2lmKFQ9PW51bGwpe3Rocm93IlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYWR9ZWxzZXticmVha319Vj1hZH1yZXR1cm4gYWF9O3ZhciBJPUYuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKVxzKig/OihcUz89KVxzKihbJyJdKikoLio/KVwzfClccypcXS8sVEFHOi9eKCg/Oltcd1x1MDBjMC1cdUZGRkZcKl8tXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspKD86XCgoWyciXSopKCg/OlwoW15cKV0rXCl8W15cMlwoXCldKikrKVwyXCkpPy99LGF0dHJNYXA6eyJjbGFzcyI6ImNsYXNzTmFtZSIsImZvciI6Imh0bWxGb3IifSxhdHRySGFuZGxlOntocmVmOmZ1bmN0aW9uKFQpe3JldHVybiBULmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0scmVsYXRpdmU6eyIrIjpmdW5jdGlvbihhYSxULFope3ZhciBYPXR5cGVvZiBUPT09InN0cmluZyIsYWI9WCYmIS9cVy8udGVzdChUKSxZPVgmJiFhYjtpZihhYiYmIVope1Q9VC50b1VwcGVyQ2FzZSgpfWZvcih2YXIgVz0wLFY9YWEubGVuZ3RoLFU7VzxWO1crKyl7aWYoKFU9YWFbV10pKXt3aGlsZSgoVT1VLnByZXZpb3VzU2libGluZykmJlUubm9kZVR5cGUhPT0xKXt9YWFbV109WXx8VSYmVS5ub2RlTmFtZT09PVQ/VXx8ZmFsc2U6VT09PVR9fWlmKFkpe0YuZmlsdGVyKFQsYWEsdHJ1ZSl9fSwiPiI6ZnVuY3Rpb24oWixVLGFhKXt2YXIgWD10eXBlb2YgVT09PSJzdHJpbmciO2lmKFgmJiEvXFcvLnRlc3QoVSkpe1U9YWE/VTpVLnRvVXBwZXJDYXNlKCk7Zm9yKHZhciBWPTAsVD1aLmxlbmd0aDtWPFQ7VisrKXt2YXIgWT1aW1ZdO2lmKFkpe3ZhciBXPVkucGFyZW50Tm9kZTtaW1ZdPVcubm9kZU5hbWU9PT1VP1c6ZmFsc2V9fX1lbHNle2Zvcih2YXIgVj0wLFQ9Wi5sZW5ndGg7VjxUO1YrKyl7dmFyIFk9WltWXTtpZihZKXtaW1ZdPVg/WS5wYXJlbnROb2RlOlkucGFyZW50Tm9kZT09PVV9fWlmKFgpe0YuZmlsdGVyKFUsWix0cnVlKX19fSwiIjpmdW5jdGlvbihXLFUsWSl7dmFyIFY9TCsrLFQ9UztpZighVS5tYXRjaCgvXFcvKSl7dmFyIFg9VT1ZP1U6VS50b1VwcGVyQ2FzZSgpO1Q9UH1UKCJwYXJlbnROb2RlIixVLFYsVyxYLFkpfSwifiI6ZnVuY3Rpb24oVyxVLFkpe3ZhciBWPUwrKyxUPVM7aWYodHlwZW9mIFU9PT0ic3RyaW5nIiYmIVUubWF0Y2goL1xXLykpe3ZhciBYPVU9WT9VOlUudG9VcHBlckNhc2UoKTtUPVB9VCgicHJldmlvdXNTaWJsaW5nIixVLFYsVyxYLFkpfX0sZmluZDp7SUQ6ZnVuY3Rpb24oVSxWLFcpe2lmKHR5cGVvZiBWLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFXKXt2YXIgVD1WLmdldEVsZW1lbnRCeUlkKFVbMV0pO3JldHVybiBUP1tUXTpbXX19LE5BTUU6ZnVuY3Rpb24oVixZLFope2lmKHR5cGVvZiBZLmdldEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5lZCIpe3ZhciBVPVtdLFg9WS5nZXRFbGVtZW50c0J5TmFtZShWWzFdKTtmb3IodmFyIFc9MCxUPVgubGVuZ3RoO1c8VDtXKyspe2lmKFhbV10uZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1WWzFdKXtVLnB1c2goWFtXXSl9fXJldHVybiBVLmxlbmd0aD09PTA/bnVsbDpVfX0sVEFHOmZ1bmN0aW9uKFQsVSl7cmV0dXJuIFUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVFsxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKFcsVSxWLFQsWixhYSl7Vz0iICIrV1sxXS5yZXBsYWNlKC9cXC9nLCIiKSsiICI7aWYoYWEpe3JldHVybiBXfWZvcih2YXIgWD0wLFk7KFk9VVtYXSkhPW51bGw7WCsrKXtpZihZKXtpZihaXihZLmNsYXNzTmFtZSYmKCIgIitZLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoVyk+PTApKXtpZighVil7VC5wdXNoKFkpfX1lbHNle2lmKFYpe1VbWF09ZmFsc2V9fX19cmV0dXJuIGZhbHNlfSxJRDpmdW5jdGlvbihUKXtyZXR1cm4gVFsxXS5yZXBsYWNlKC9cXC9nLCIiKX0sVEFHOmZ1bmN0aW9uKFUsVCl7Zm9yKHZhciBWPTA7VFtWXT09PWZhbHNlO1YrKyl7fXJldHVybiBUW1ZdJiZRKFRbVl0pP1VbMV06VVsxXS50b1VwcGVyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihUKXtpZihUWzFdPT0ibnRoIil7dmFyIFU9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhUWzJdPT0iZXZlbiImJiIybiJ8fFRbMl09PSJvZGQiJiYiMm4rMSJ8fCEvXEQvLnRlc3QoVFsyXSkmJiIwbisiK1RbMl18fFRbMl0pO1RbMl09KFVbMV0rKFVbMl18fDEpKS0wO1RbM109VVszXS0wfVRbMF09TCsrO3JldHVybiBUfSxBVFRSOmZ1bmN0aW9uKFgsVSxWLFQsWSxaKXt2YXIgVz1YWzFdLnJlcGxhY2UoL1xcL2csIiIpO2lmKCFaJiZJLmF0dHJNYXBbV10pe1hbMV09SS5hdHRyTWFwW1ddfWlmKFhbMl09PT0ifj0iKXtYWzRdPSIgIitYWzRdKyIgIn1yZXR1cm4gWH0sUFNFVURPOmZ1bmN0aW9uKFgsVSxWLFQsWSl7aWYoWFsxXT09PSJub3QiKXtpZihYWzNdLm1hdGNoKFIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KFhbM10pKXtYWzNdPUYoWFszXSxudWxsLG51bGwsVSl9ZWxzZXt2YXIgVz1GLmZpbHRlcihYWzNdLFUsVix0cnVlXlkpO2lmKCFWKXtULnB1c2guYXBwbHkoVCxXKX1yZXR1cm4gZmFsc2V9fWVsc2V7aWYoSS5tYXRjaC5QT1MudGVzdChYWzBdKXx8SS5tYXRjaC5DSElMRC50ZXN0KFhbMF0pKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIFh9LFBPUzpmdW5jdGlvbihUKXtULnVuc2hpZnQodHJ1ZSk7cmV0dXJuIFR9fSxmaWx0ZXJzOntlbmFibGVkOmZ1bmN0aW9uKFQpe3JldHVybiBULmRpc2FibGVkPT09ZmFsc2UmJlQudHlwZSE9PSJoaWRkZW4ifSxkaXNhYmxlZDpmdW5jdGlvbihUKXtyZXR1cm4gVC5kaXNhYmxlZD09PXRydWV9LGNoZWNrZWQ6ZnVuY3Rpb24oVCl7cmV0dXJuIFQuY2hlY2tlZD09PXRydWV9LHNlbGVjdGVkOmZ1bmN0aW9uKFQpe1QucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBULnNlbGVjdGVkPT09dHJ1ZX0scGFyZW50OmZ1bmN0aW9uKFQpe3JldHVybiAhIVQuZmlyc3RDaGlsZH0sZW1wdHk6ZnVuY3Rpb24oVCl7cmV0dXJuICFULmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihWLFUsVCl7cmV0dXJuICEhRihUWzNdLFYpLmxlbmd0aH0saGVhZGVyOmZ1bmN0aW9uKFQpe3JldHVybi9oXGQvaS50ZXN0KFQubm9kZU5hbWUpfSx0ZXh0OmZ1bmN0aW9uKFQpe3JldHVybiJ0ZXh0Ij09PVQudHlwZX0scmFkaW86ZnVuY3Rpb24oVCl7cmV0dXJuInJhZGlvIj09PVQudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oVCl7cmV0dXJuImNoZWNrYm94Ij09PVQudHlwZX0sZmlsZTpmdW5jdGlvbihUKXtyZXR1cm4iZmlsZSI9PT1ULnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKFQpe3JldHVybiJwYXNzd29yZCI9PT1ULnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihUKXtyZXR1cm4ic3VibWl0Ij09PVQudHlwZX0saW1hZ2U6ZnVuY3Rpb24oVCl7cmV0dXJuImltYWdlIj09PVQudHlwZX0scmVzZXQ6ZnVuY3Rpb24oVCl7cmV0dXJuInJlc2V0Ij09PVQudHlwZX0sYnV0dG9uOmZ1bmN0aW9uKFQpe3JldHVybiJidXR0b24iPT09VC50eXBlfHxULm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT0iQlVUVE9OIn0saW5wdXQ6ZnVuY3Rpb24oVCl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KFQubm9kZU5hbWUpfX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oVSxUKXtyZXR1cm4gVD09PTB9LGxhc3Q6ZnVuY3Rpb24oVixVLFQsVyl7cmV0dXJuIFU9PT1XLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFQlMj09PTB9LG9kZDpmdW5jdGlvbihVLFQpe3JldHVybiBUJTI9PT0xfSxsdDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU8VFszXS0wfSxndDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU+VFszXS0wfSxudGg6ZnVuY3Rpb24oVixVLFQpe3JldHVybiBUWzNdLTA9PVV9LGVxOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gVFszXS0wPT1VfX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oWixWLFcsYWEpe3ZhciBVPVZbMV0sWD1JLmZpbHRlcnNbVV07aWYoWCl7cmV0dXJuIFgoWixXLFYsYWEpfWVsc2V7aWYoVT09PSJjb250YWlucyIpe3JldHVybihaLnRleHRDb250ZW50fHxaLmlubmVyVGV4dHx8IiIpLmluZGV4T2YoVlszXSk+PTB9ZWxzZXtpZihVPT09Im5vdCIpe3ZhciBZPVZbM107Zm9yKHZhciBXPTAsVD1ZLmxlbmd0aDtXPFQ7VysrKXtpZihZW1ddPT09Wil7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX19fX0sQ0hJTEQ6ZnVuY3Rpb24oVCxXKXt2YXIgWj1XWzFdLFU9VDtzd2l0Y2goWil7Y2FzZSJvbmx5IjpjYXNlImZpcnN0Ijp3aGlsZShVPVUucHJldmlvdXNTaWJsaW5nKXtpZihVLm5vZGVUeXBlPT09MSl7cmV0dXJuIGZhbHNlfX1pZihaPT0iZmlyc3QiKXtyZXR1cm4gdHJ1ZX1VPVQ7Y2FzZSJsYXN0Ijp3aGlsZShVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlO2Nhc2UibnRoIjp2YXIgVj1XWzJdLGFjPVdbM107aWYoVj09MSYmYWM9PTApe3JldHVybiB0cnVlfXZhciBZPVdbMF0sYWI9VC5wYXJlbnROb2RlO2lmKGFiJiYoYWIuc2l6Y2FjaGUhPT1ZfHwhVC5ub2RlSW5kZXgpKXt2YXIgWD0wO2ZvcihVPWFiLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtVLm5vZGVJbmRleD0rK1h9fWFiLnNpemNhY2hlPVl9dmFyIGFhPVQubm9kZUluZGV4LWFjO2lmKFY9PTApe3JldHVybiBhYT09MH1lbHNle3JldHVybihhYSVWPT0wJiZhYS9WPj0wKX19fSxJRDpmdW5jdGlvbihVLFQpe3JldHVybiBVLm5vZGVUeXBlPT09MSYmVS5nZXRBdHRyaWJ1dGUoImlkIik9PT1UfSxUQUc6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oVD09PSIqIiYmVS5ub2RlVHlwZT09PTEpfHxVLm5vZGVOYW1lPT09VH0sQ0xBU1M6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oIiAiKyhVLmNsYXNzTmFtZXx8VS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihUKT4tMX0sQVRUUjpmdW5jdGlvbihZLFcpe3ZhciBWPVdbMV0sVD1JLmF0dHJIYW5kbGVbVl0/SS5hdHRySGFuZGxlW1ZdKFkpOllbVl0hPW51bGw/WVtWXTpZLmdldEF0dHJpYnV0ZShWKSxaPVQrIiIsWD1XWzJdLFU9V1s0XTtyZXR1cm4gVD09bnVsbD9YPT09IiE9IjpYPT09Ij0iP1o9PT1VOlg9PT0iKj0iP1ouaW5kZXhPZihVKT49MDpYPT09In49Ij8oIiAiK1orIiAiKS5pbmRleE9mKFUpPj0wOiFVP1omJlQhPT1mYWxzZTpYPT09IiE9Ij9aIT1VOlg9PT0iXj0iP1ouaW5kZXhPZihVKT09PTA6WD09PSIkPSI/Wi5zdWJzdHIoWi5sZW5ndGgtVS5sZW5ndGgpPT09VTpYPT09Inw9Ij9aPT09VXx8Wi5zdWJzdHIoMCxVLmxlbmd0aCsxKT09PVUrIi0iOmZhbHNlfSxQT1M6ZnVuY3Rpb24oWCxVLFYsWSl7dmFyIFQ9VVsyXSxXPUkuc2V0RmlsdGVyc1tUXTtpZihXKXtyZXR1cm4gVyhYLFYsVSxZKX19fX07dmFyIE09SS5tYXRjaC5QT1M7Zm9yKHZhciBPIGluIEkubWF0Y2gpe0kubWF0Y2hbT109UmVnRXhwKEkubWF0Y2hbT10uc291cmNlKy8oPyFbXlxbXSpcXSkoPyFbXlwoXSpcKSkvLnNvdXJjZSl9dmFyIEU9ZnVuY3Rpb24oVSxUKXtVPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFUpO2lmKFQpe1QucHVzaC5hcHBseShULFUpO3JldHVybiBUfXJldHVybiBVfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMpfWNhdGNoKE4pe0U9ZnVuY3Rpb24oWCxXKXt2YXIgVT1XfHxbXTtpZihILmNhbGwoWCk9PT0iW29iamVjdCBBcnJheV0iKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShVLFgpfWVsc2V7aWYodHlwZW9mIFgubGVuZ3RoPT09Im51bWJlciIpe2Zvcih2YXIgVj0wLFQ9WC5sZW5ndGg7VjxUO1YrKyl7VS5wdXNoKFhbVl0pfX1lbHNle2Zvcih2YXIgVj0wO1hbVl07VisrKXtVLnB1c2goWFtWXSl9fX1yZXR1cm4gVX19dmFyIEc7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtHPWZ1bmN0aW9uKFUsVCl7dmFyIFY9VS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihUKSY0Py0xOlU9PT1UPzA6MTtpZihWPT09MCl7aGFzRHVwbGljYXRlPXRydWV9cmV0dXJuIFZ9fWVsc2V7aWYoInNvdXJjZUluZGV4IiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpe0c9ZnVuY3Rpb24oVSxUKXt2YXIgVj1VLnNvdXJjZUluZGV4LVQuc291cmNlSW5kZXg7aWYoVj09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBWfX1lbHNle2lmKGRvY3VtZW50LmNyZWF0ZVJhbmdlKXtHPWZ1bmN0aW9uKFcsVSl7dmFyIFY9Vy5vd25lckRvY3VtZW50LmNyZWF0ZVJhbmdlKCksVD1VLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtWLnNlbGVjdE5vZGUoVyk7Vi5jb2xsYXBzZSh0cnVlKTtULnNlbGVjdE5vZGUoVSk7VC5jb2xsYXBzZSh0cnVlKTt2YXIgWD1WLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19FTkQsVCk7aWYoWD09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBYfX19fShmdW5jdGlvbigpe3ZhciBVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKSxWPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO1UuaW5uZXJIVE1MPSI8aW5wdXQgbmFtZT0nIitWKyInLz4iO3ZhciBUPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtULmluc2VydEJlZm9yZShVLFQuZmlyc3RDaGlsZCk7aWYoISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChWKSl7SS5maW5kLklEPWZ1bmN0aW9uKFgsWSxaKXtpZih0eXBlb2YgWS5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhWil7dmFyIFc9WS5nZXRFbGVtZW50QnlJZChYWzFdKTtyZXR1cm4gVz9XLmlkPT09WFsxXXx8dHlwZW9mIFcuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZXLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09WFsxXT9bV106ZzpbXX19O0kuZmlsdGVyLklEPWZ1bmN0aW9uKFksVyl7dmFyIFg9dHlwZW9mIFkuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZZLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIFkubm9kZVR5cGU9PT0xJiZYJiZYLm5vZGVWYWx1ZT09PVd9fVQucmVtb3ZlQ2hpbGQoVSl9KSgpOyhmdW5jdGlvbigpe3ZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIikpO2lmKFQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCl7SS5maW5kLlRBRz1mdW5jdGlvbihVLFkpe3ZhciBYPVkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVVsxXSk7aWYoVVsxXT09PSIqIil7dmFyIFc9W107Zm9yKHZhciBWPTA7WFtWXTtWKyspe2lmKFhbVl0ubm9kZVR5cGU9PT0xKXtXLnB1c2goWFtWXSl9fVg9V31yZXR1cm4gWH19VC5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iO2lmKFQuZmlyc3RDaGlsZCYmdHlwZW9mIFQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUhPT0idW5kZWZpbmVkIiYmVC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpIT09IiMiKXtJLmF0dHJIYW5kbGUuaHJlZj1mdW5jdGlvbihVKXtyZXR1cm4gVS5nZXRBdHRyaWJ1dGUoImhyZWYiLDIpfX19KSgpO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwpeyhmdW5jdGlvbigpe3ZhciBUPUYsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtVLmlubmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKFUucXVlcnlTZWxlY3RvckFsbCYmVS5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApe3JldHVybn1GPWZ1bmN0aW9uKFksWCxWLFcpe1g9WHx8ZG9jdW1lbnQ7aWYoIVcmJlgubm9kZVR5cGU9PT05JiYhUShYKSl7dHJ5e3JldHVybiBFKFgucXVlcnlTZWxlY3RvckFsbChZKSxWKX1jYXRjaChaKXt9fXJldHVybiBUKFksWCxWLFcpfTtGLmZpbmQ9VC5maW5kO0YuZmlsdGVyPVQuZmlsdGVyO0Yuc2VsZWN0b3JzPVQuc2VsZWN0b3JzO0YubWF0Y2hlcz1ULm1hdGNoZXN9KSgpfWlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXsoZnVuY3Rpb24oKXt2YXIgVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtULmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTApe3JldHVybn1ULmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTEpe3JldHVybn1JLm9yZGVyLnNwbGljZSgxLDAsIkNMQVNTIik7SS5maW5kLkNMQVNTPWZ1bmN0aW9uKFUsVixXKXtpZih0eXBlb2YgVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIT09InVuZGVmaW5lZCImJiFXKXtyZXR1cm4gVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFVbMV0pfX19KSgpfWZ1bmN0aW9uIFAoVSxaLFksYWQsYWEsYWMpe3ZhciBhYj1VPT0icHJldmlvdXNTaWJsaW5nIiYmIWFjO2Zvcih2YXIgVz0wLFY9YWQubGVuZ3RoO1c8VjtXKyspe3ZhciBUPWFkW1ddO2lmKFQpe2lmKGFiJiZULm5vZGVUeXBlPT09MSl7VC5zaXpjYWNoZT1ZO1Quc2l6c2V0PVd9VD1UW1VdO3ZhciBYPWZhbHNlO3doaWxlKFQpe2lmKFQuc2l6Y2FjaGU9PT1ZKXtYPWFkW1Quc2l6c2V0XTticmVha31pZihULm5vZGVUeXBlPT09MSYmIWFjKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31pZihULm5vZGVOYW1lPT09Wil7WD1UO2JyZWFrfVQ9VFtVXX1hZFtXXT1YfX19ZnVuY3Rpb24gUyhVLFosWSxhZCxhYSxhYyl7dmFyIGFiPVU9PSJwcmV2aW91c1NpYmxpbmciJiYhYWM7Zm9yKHZhciBXPTAsVj1hZC5sZW5ndGg7VzxWO1crKyl7dmFyIFQ9YWRbV107aWYoVCl7aWYoYWImJlQubm9kZVR5cGU9PT0xKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31UPVRbVV07dmFyIFg9ZmFsc2U7d2hpbGUoVCl7aWYoVC5zaXpjYWNoZT09PVkpe1g9YWRbVC5zaXpzZXRdO2JyZWFrfWlmKFQubm9kZVR5cGU9PT0xKXtpZighYWMpe1Quc2l6Y2FjaGU9WTtULnNpenNldD1XfWlmKHR5cGVvZiBaIT09InN0cmluZyIpe2lmKFQ9PT1aKXtYPXRydWU7YnJlYWt9fWVsc2V7aWYoRi5maWx0ZXIoWixbVF0pLmxlbmd0aD4wKXtYPVQ7YnJlYWt9fX1UPVRbVV19YWRbV109WH19fXZhciBLPWRvY3VtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKFUsVCl7cmV0dXJuIFUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oVCkmMTZ9OmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFUhPT1UJiYoVS5jb250YWlucz9VLmNvbnRhaW5zKFQpOnRydWUpfTt2YXIgUT1mdW5jdGlvbihUKXtyZXR1cm4gVC5ub2RlVHlwZT09PTkmJlQuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lIT09IkhUTUwifHwhIVQub3duZXJEb2N1bWVudCYmUShULm93bmVyRG9jdW1lbnQpfTt2YXIgSj1mdW5jdGlvbihULGFhKXt2YXIgVz1bXSxYPSIiLFksVj1hYS5ub2RlVHlwZT9bYWFdOmFhO3doaWxlKChZPUkubWF0Y2guUFNFVURPLmV4ZWMoVCkpKXtYKz1ZWzBdO1Q9VC5yZXBsYWNlKEkubWF0Y2guUFNFVURPLCIiKX1UPUkucmVsYXRpdmVbVF0/VCsiKiI6VDtmb3IodmFyIFo9MCxVPVYubGVuZ3RoO1o8VTtaKyspe0YoVCxWW1pdLFcpfXJldHVybiBGLmZpbHRlcihYLFcpfTtvLmZpbmQ9RjtvLmZpbHRlcj1GLmZpbHRlcjtvLmV4cHI9Ri5zZWxlY3RvcnM7by5leHByWyI6Il09by5leHByLmZpbHRlcnM7Ri5zZWxlY3RvcnMuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oVCl7cmV0dXJuIFQub2Zmc2V0V2lkdGg9PT0wfHxULm9mZnNldEhlaWdodD09PTB9O0Yuc2VsZWN0b3JzLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihUKXtyZXR1cm4gVC5vZmZzZXRXaWR0aD4wfHxULm9mZnNldEhlaWdodD4wfTtGLnNlbGVjdG9ycy5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKFQpe3JldHVybiBvLmdyZXAoby50aW1lcnMsZnVuY3Rpb24oVSl7cmV0dXJuIFQ9PT1VLmVsZW19KS5sZW5ndGh9O28ubXVsdGlGaWx0ZXI9ZnVuY3Rpb24oVixULFUpe2lmKFUpe1Y9Ijpub3QoIitWKyIpIn1yZXR1cm4gRi5tYXRjaGVzKFYsVCl9O28uZGlyPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W10sVz1WW1VdO3doaWxlKFcmJlchPWRvY3VtZW50KXtpZihXLm5vZGVUeXBlPT0xKXtULnB1c2goVyl9Vz1XW1VdfXJldHVybiBUfTtvLm50aD1mdW5jdGlvbihYLFQsVixXKXtUPVR8fDE7dmFyIFU9MDtmb3IoO1g7WD1YW1ZdKXtpZihYLm5vZGVUeXBlPT0xJiYrK1U9PVQpe2JyZWFrfX1yZXR1cm4gWH07by5zaWJsaW5nPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W107Zm9yKDtWO1Y9Vi5uZXh0U2libGluZyl7aWYoVi5ub2RlVHlwZT09MSYmViE9VSl7VC5wdXNoKFYpfX1yZXR1cm4gVH07cmV0dXJuO2wuU2l6emxlPUZ9KSgpO28uZXZlbnQ9e2FkZDpmdW5jdGlvbihJLEYsSCxLKXtpZihJLm5vZGVUeXBlPT0zfHxJLm5vZGVUeXBlPT04KXtyZXR1cm59aWYoSS5zZXRJbnRlcnZhbCYmSSE9bCl7ST1sfWlmKCFILmd1aWQpe0guZ3VpZD10aGlzLmd1aWQrK31pZihLIT09Zyl7dmFyIEc9SDtIPXRoaXMucHJveHkoRyk7SC5kYXRhPUt9dmFyIEU9by5kYXRhKEksImV2ZW50cyIpfHxvLmRhdGEoSSwiZXZlbnRzIix7fSksSj1vLmRhdGEoSSwiaGFuZGxlIil8fG8uZGF0YShJLCJoYW5kbGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBvIT09InVuZGVmaW5lZCImJiFvLmV2ZW50LnRyaWdnZXJlZD9vLmV2ZW50LmhhbmRsZS5hcHBseShhcmd1bWVudHMuY2FsbGVlLmVsZW0sYXJndW1lbnRzKTpnfSk7Si5lbGVtPUk7by5lYWNoKEYuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKE0sTil7dmFyIE89Ti5zcGxpdCgiLiIpO049Ty5zaGlmdCgpO0gudHlwZT1PLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4iKTt2YXIgTD1FW05dO2lmKG8uZXZlbnQuc3BlY2lhbEFsbFtOXSl7by5ldmVudC5zcGVjaWFsQWxsW05dLnNldHVwLmNhbGwoSSxLLE8pfWlmKCFMKXtMPUVbTl09e307aWYoIW8uZXZlbnQuc3BlY2lhbFtOXXx8by5ldmVudC5zcGVjaWFsW05dLnNldHVwLmNhbGwoSSxLLE8pPT09ZmFsc2Upe2lmKEkuYWRkRXZlbnRMaXN0ZW5lcil7SS5hZGRFdmVudExpc3RlbmVyKE4sSixmYWxzZSl9ZWxzZXtpZihJLmF0dGFjaEV2ZW50KXtJLmF0dGFjaEV2ZW50KCJvbiIrTixKKX19fX1MW0guZ3VpZF09SDtvLmV2ZW50Lmdsb2JhbFtOXT10cnVlfSk7ST1udWxsfSxndWlkOjEsZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihLLEgsSil7aWYoSy5ub2RlVHlwZT09M3x8Sy5ub2RlVHlwZT09OCl7cmV0dXJufXZhciBHPW8uZGF0YShLLCJldmVudHMiKSxGLEU7aWYoRyl7aWYoSD09PWd8fCh0eXBlb2YgSD09PSJzdHJpbmciJiZILmNoYXJBdCgwKT09Ii4iKSl7Zm9yKHZhciBJIGluIEcpe3RoaXMucmVtb3ZlKEssSSsoSHx8IiIpKX19ZWxzZXtpZihILnR5cGUpe0o9SC5oYW5kbGVyO0g9SC50eXBlfW8uZWFjaChILnNwbGl0KC9ccysvKSxmdW5jdGlvbihNLE8pe3ZhciBRPU8uc3BsaXQoIi4iKTtPPVEuc2hpZnQoKTt2YXIgTj1SZWdFeHAoIihefFxcLikiK1Euc2xpY2UoKS5zb3J0KCkuam9pbigiLipcXC4iKSsiKFxcLnwkKSIpO2lmKEdbT10pe2lmKEope2RlbGV0ZSBHW09dW0ouZ3VpZF19ZWxzZXtmb3IodmFyIFAgaW4gR1tPXSl7aWYoTi50ZXN0KEdbT11bUF0udHlwZSkpe2RlbGV0ZSBHW09dW1BdfX19aWYoby5ldmVudC5zcGVjaWFsQWxsW09dKXtvLmV2ZW50LnNwZWNpYWxBbGxbT10udGVhcmRvd24uY2FsbChLLFEpfWZvcihGIGluIEdbT10pe2JyZWFrfWlmKCFGKXtpZighby5ldmVudC5zcGVjaWFsW09dfHxvLmV2ZW50LnNwZWNpYWxbT10udGVhcmRvd24uY2FsbChLLFEpPT09ZmFsc2Upe2lmKEsucmVtb3ZlRXZlbnRMaXN0ZW5lcil7Sy5yZW1vdmVFdmVudExpc3RlbmVyKE8sby5kYXRhKEssImhhbmRsZSIpLGZhbHNlKX1lbHNle2lmKEsuZGV0YWNoRXZlbnQpe0suZGV0YWNoRXZlbnQoIm9uIitPLG8uZGF0YShLLCJoYW5kbGUiKSl9fX1GPW51bGw7ZGVsZXRlIEdbT119fX0pfWZvcihGIGluIEcpe2JyZWFrfWlmKCFGKXt2YXIgTD1vLmRhdGEoSywiaGFuZGxlIik7aWYoTCl7TC5lbGVtPW51bGx9by5yZW1vdmVEYXRhKEssImV2ZW50cyIpO28ucmVtb3ZlRGF0YShLLCJoYW5kbGUiKX19fSx0cmlnZ2VyOmZ1bmN0aW9uKEksSyxILEUpe3ZhciBHPUkudHlwZXx8STtpZighRSl7ST10eXBlb2YgST09PSJvYmplY3QiP0lbaF0/STpvLmV4dGVuZChvLkV2ZW50KEcpLEkpOm8uRXZlbnQoRyk7aWYoRy5pbmRleE9mKCIhIik+PTApe0kudHlwZT1HPUcuc2xpY2UoMCwtMSk7SS5leGNsdXNpdmU9dHJ1ZX1pZighSCl7SS5zdG9wUHJvcGFnYXRpb24oKTtpZih0aGlzLmdsb2JhbFtHXSl7by5lYWNoKG8uY2FjaGUsZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbR10pe28uZXZlbnQudHJpZ2dlcihJLEssdGhpcy5oYW5kbGUuZWxlbSl9fSl9fWlmKCFIfHxILm5vZGVUeXBlPT0zfHxILm5vZGVUeXBlPT04KXtyZXR1cm4gZ31JLnJlc3VsdD1nO0kudGFyZ2V0PUg7Sz1vLm1ha2VBcnJheShLKTtLLnVuc2hpZnQoSSl9SS5jdXJyZW50VGFyZ2V0PUg7dmFyIEo9by5kYXRhKEgsImhhbmRsZSIpO2lmKEope0ouYXBwbHkoSCxLKX1pZigoIUhbR118fChvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpJiZIWyJvbiIrR10mJkhbIm9uIitHXS5hcHBseShILEspPT09ZmFsc2Upe0kucmVzdWx0PWZhbHNlfWlmKCFFJiZIW0ddJiYhSS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIShvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpe3RoaXMudHJpZ2dlcmVkPXRydWU7dHJ5e0hbR10oKX1jYXRjaChMKXt9fXRoaXMudHJpZ2dlcmVkPWZhbHNlO2lmKCFJLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3ZhciBGPUgucGFyZW50Tm9kZXx8SC5vd25lckRvY3VtZW50O2lmKEYpe28uZXZlbnQudHJpZ2dlcihJLEssRix0cnVlKX19fSxoYW5kbGU6ZnVuY3Rpb24oSyl7dmFyIEosRTtLPWFyZ3VtZW50c1swXT1vLmV2ZW50LmZpeChLfHxsLmV2ZW50KTtLLmN1cnJlbnRUYXJnZXQ9dGhpczt2YXIgTD1LLnR5cGUuc3BsaXQoIi4iKTtLLnR5cGU9TC5zaGlmdCgpO0o9IUwubGVuZ3RoJiYhSy5leGNsdXNpdmU7dmFyIEk9UmVnRXhwKCIoXnxcXC4pIitMLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwuIikrIihcXC58JCkiKTtFPShvLmRhdGEodGhpcywiZXZlbnRzIil8fHt9KVtLLnR5cGVdO2Zvcih2YXIgRyBpbiBFKXt2YXIgSD1FW0ddO2lmKEp8fEkudGVzdChILnR5cGUpKXtLLmhhbmRsZXI9SDtLLmRhdGE9SC5kYXRhO3ZhciBGPUguYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKEYhPT1nKXtLLnJlc3VsdD1GO2lmKEY9PT1mYWxzZSl7Sy5wcmV2ZW50RGVmYXVsdCgpO0suc3RvcFByb3BhZ2F0aW9uKCl9fWlmKEsuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl7YnJlYWt9fX19LHByb3BzOiJhbHRLZXkgYXR0ckNoYW5nZSBhdHRyTmFtZSBidWJibGVzIGJ1dHRvbiBjYW5jZWxhYmxlIGNoYXJDb2RlIGNsaWVudFggY2xpZW50WSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZGF0YSBkZXRhaWwgZXZlbnRQaGFzZSBmcm9tRWxlbWVudCBoYW5kbGVyIGtleUNvZGUgbWV0YUtleSBuZXdWYWx1ZSBvcmlnaW5hbFRhcmdldCBwYWdlWCBwYWdlWSBwcmV2VmFsdWUgcmVsYXRlZE5vZGUgcmVsYXRlZFRhcmdldCBzY3JlZW5YIHNjcmVlblkgc2hpZnRLZXkgc3JjRWxlbWVudCB0YXJnZXQgdG9FbGVtZW50IHZpZXcgd2hlZWxEZWx0YSB3aGljaCIuc3BsaXQoIiAiKSxmaXg6ZnVuY3Rpb24oSCl7aWYoSFtoXSl7cmV0dXJuIEh9dmFyIEY9SDtIPW8uRXZlbnQoRik7Zm9yKHZhciBHPXRoaXMucHJvcHMubGVuZ3RoLEo7Rzspe0o9dGhpcy5wcm9wc1stLUddO0hbSl09RltKXX1pZighSC50YXJnZXQpe0gudGFyZ2V0PUguc3JjRWxlbWVudHx8ZG9jdW1lbnR9aWYoSC50YXJnZXQubm9kZVR5cGU9PTMpe0gudGFyZ2V0PUgudGFyZ2V0LnBhcmVudE5vZGV9aWYoIUgucmVsYXRlZFRhcmdldCYmSC5mcm9tRWxlbWVudCl7SC5yZWxhdGVkVGFyZ2V0PUguZnJvbUVsZW1lbnQ9PUgudGFyZ2V0P0gudG9FbGVtZW50OkguZnJvbUVsZW1lbnR9aWYoSC5wYWdlWD09bnVsbCYmSC5jbGllbnRYIT1udWxsKXt2YXIgST1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsRT1kb2N1bWVudC5ib2R5O0gucGFnZVg9SC5jbGllbnRYKyhJJiZJLnNjcm9sbExlZnR8fEUmJkUuc2Nyb2xsTGVmdHx8MCktKEkuY2xpZW50TGVmdHx8MCk7SC5wYWdlWT1ILmNsaWVudFkrKEkmJkkuc2Nyb2xsVG9wfHxFJiZFLnNjcm9sbFRvcHx8MCktKEkuY2xpZW50VG9wfHwwKX1pZighSC53aGljaCYmKChILmNoYXJDb2RlfHxILmNoYXJDb2RlPT09MCk/SC5jaGFyQ29kZTpILmtleUNvZGUpKXtILndoaWNoPUguY2hhckNvZGV8fEgua2V5Q29kZX1pZighSC5tZXRhS2V5JiZILmN0cmxLZXkpe0gubWV0YUtleT1ILmN0cmxLZXl9aWYoIUgud2hpY2gmJkguYnV0dG9uKXtILndoaWNoPShILmJ1dHRvbiYxPzE6KEguYnV0dG9uJjI/MzooSC5idXR0b24mND8yOjApKSl9cmV0dXJuIEh9LHByb3h5OmZ1bmN0aW9uKEYsRSl7RT1FfHxmdW5jdGlvbigpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07RS5ndWlkPUYuZ3VpZD1GLmd1aWR8fEUuZ3VpZHx8dGhpcy5ndWlkKys7cmV0dXJuIEV9LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpCLHRlYXJkb3duOmZ1bmN0aW9uKCl7fX19LHNwZWNpYWxBbGw6e2xpdmU6e3NldHVwOmZ1bmN0aW9uKEUsRil7by5ldmVudC5hZGQodGhpcyxGWzBdLGMpfSx0ZWFyZG93bjpmdW5jdGlvbihHKXtpZihHLmxlbmd0aCl7dmFyIEU9MCxGPVJlZ0V4cCgiKF58XFwuKSIrR1swXSsiKFxcLnwkKSIpO28uZWFjaCgoby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fHt9KSxmdW5jdGlvbigpe2lmKEYudGVzdCh0aGlzLnR5cGUpKXtFKyt9fSk7aWYoRTwxKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEdbMF0sYyl9fX19fX07by5FdmVudD1mdW5jdGlvbihFKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdCl7cmV0dXJuIG5ldyBvLkV2ZW50KEUpfWlmKEUmJkUudHlwZSl7dGhpcy5vcmlnaW5hbEV2ZW50PUU7dGhpcy50eXBlPUUudHlwZX1lbHNle3RoaXMudHlwZT1FfXRoaXMudGltZVN0YW1wPWUoKTt0aGlzW2hdPXRydWV9O2Z1bmN0aW9uIGsoKXtyZXR1cm4gZmFsc2V9ZnVuY3Rpb24gdSgpe3JldHVybiB0cnVlfW8uRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXU7dmFyIEU9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKCFFKXtyZXR1cm59aWYoRS5wcmV2ZW50RGVmYXVsdCl7RS5wcmV2ZW50RGVmYXVsdCgpfUUucmV0dXJuVmFsdWU9ZmFsc2V9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9dTt2YXIgRT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoIUUpe3JldHVybn1pZihFLnN0b3BQcm9wYWdhdGlvbil7RS5zdG9wUHJvcGFnYXRpb24oKX1FLmNhbmNlbEJ1YmJsZT10cnVlfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPXU7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOmssaXNQcm9wYWdhdGlvblN0b3BwZWQ6ayxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDprfTt2YXIgYT1mdW5jdGlvbihGKXt2YXIgRT1GLnJlbGF0ZWRUYXJnZXQ7d2hpbGUoRSYmRSE9dGhpcyl7dHJ5e0U9RS5wYXJlbnROb2RlfWNhdGNoKEcpe0U9dGhpc319aWYoRSE9dGhpcyl7Ri50eXBlPUYuZGF0YTtvLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTtvLmVhY2goe21vdXNlb3ZlcjoibW91c2VlbnRlciIsbW91c2VvdXQ6Im1vdXNlbGVhdmUifSxmdW5jdGlvbihGLEUpe28uZXZlbnQuc3BlY2lhbFtFXT17c2V0dXA6ZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEYsYSxFKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEYsYSl9fX0pO28uZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKEYsRyxFKXtyZXR1cm4gRj09InVubG9hZCI/dGhpcy5vbmUoRixHLEUpOnRoaXMuZWFjaChmdW5jdGlvbigpe28uZXZlbnQuYWRkKHRoaXMsRixFfHxHLEUmJkcpfSl9LG9uZTpmdW5jdGlvbihHLEgsRil7dmFyIEU9by5ldmVudC5wcm94eShGfHxILGZ1bmN0aW9uKEkpe28odGhpcykudW5iaW5kKEksRSk7cmV0dXJuKEZ8fEgpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEcsRSxGJiZIKX0pfSx1bmJpbmQ6ZnVuY3Rpb24oRixFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC5yZW1vdmUodGhpcyxGLEUpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oRSxGKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC50cmlnZ2VyKEUsRix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihFLEcpe2lmKHRoaXNbMF0pe3ZhciBGPW8uRXZlbnQoRSk7Ri5wcmV2ZW50RGVmYXVsdCgpO0Yuc3RvcFByb3BhZ2F0aW9uKCk7by5ldmVudC50cmlnZ2VyKEYsRyx0aGlzWzBdKTtyZXR1cm4gRi5yZXN1bHR9fSx0b2dnbGU6ZnVuY3Rpb24oRyl7dmFyIEU9YXJndW1lbnRzLEY9MTt3aGlsZShGPEUubGVuZ3RoKXtvLmV2ZW50LnByb3h5KEcsRVtGKytdKX1yZXR1cm4gdGhpcy5jbGljayhvLmV2ZW50LnByb3h5KEcsZnVuY3Rpb24oSCl7dGhpcy5sYXN0VG9nZ2xlPSh0aGlzLmxhc3RUb2dnbGV8fDApJUY7SC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBFW3RoaXMubGFzdFRvZ2dsZSsrXS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fGZhbHNlfSkpfSxob3ZlcjpmdW5jdGlvbihFLEYpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoRSkubW91c2VsZWF2ZShGKX0scmVhZHk6ZnVuY3Rpb24oRSl7QigpO2lmKG8uaXNSZWFkeSl7RS5jYWxsKGRvY3VtZW50LG8pfWVsc2V7by5yZWFkeUxpc3QucHVzaChFKX1yZXR1cm4gdGhpc30sbGl2ZTpmdW5jdGlvbihHLEYpe3ZhciBFPW8uZXZlbnQucHJveHkoRik7RS5ndWlkKz10aGlzLnNlbGVjdG9yK0c7byhkb2N1bWVudCkuYmluZChpKEcsdGhpcy5zZWxlY3RvciksdGhpcy5zZWxlY3RvcixFKTtyZXR1cm4gdGhpc30sZGllOmZ1bmN0aW9uKEYsRSl7byhkb2N1bWVudCkudW5iaW5kKGkoRix0aGlzLnNlbGVjdG9yKSxFP3tndWlkOkUuZ3VpZCt0aGlzLnNlbGVjdG9yK0Z9Om51bGwpO3JldHVybiB0aGlzfX0pO2Z1bmN0aW9uIGMoSCl7dmFyIEU9UmVnRXhwKCIoXnxcXC4pIitILnR5cGUrIihcXC58JCkiKSxHPXRydWUsRj1bXTtvLmVhY2goby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKEksSil7aWYoRS50ZXN0KEoudHlwZSkpe3ZhciBLPW8oSC50YXJnZXQpLmNsb3Nlc3QoSi5kYXRhKVswXTtpZihLKXtGLnB1c2goe2VsZW06SyxmbjpKfSl9fX0pO0Yuc29ydChmdW5jdGlvbihKLEkpe3JldHVybiBvLmRhdGEoSi5lbGVtLCJjbG9zZXN0Iiktby5kYXRhKEkuZWxlbSwiY2xvc2VzdCIpfSk7by5lYWNoKEYsZnVuY3Rpb24oKXtpZih0aGlzLmZuLmNhbGwodGhpcy5lbGVtLEgsdGhpcy5mbi5kYXRhKT09PWZhbHNlKXtyZXR1cm4oRz1mYWxzZSl9fSk7cmV0dXJuIEd9ZnVuY3Rpb24gaShGLEUpe3JldHVyblsibGl2ZSIsRixFLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csInwiKV0uam9pbigiLiIpfW8uZXh0ZW5kKHtpc1JlYWR5OmZhbHNlLHJlYWR5TGlzdDpbXSxyZWFkeTpmdW5jdGlvbigpe2lmKCFvLmlzUmVhZHkpe28uaXNSZWFkeT10cnVlO2lmKG8ucmVhZHlMaXN0KXtvLmVhY2goby5yZWFkeUxpc3QsZnVuY3Rpb24oKXt0aGlzLmNhbGwoZG9jdW1lbnQsbyl9KTtvLnJlYWR5TGlzdD1udWxsfW8oZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfX19KTt2YXIgeD1mYWxzZTtmdW5jdGlvbiBCKCl7aWYoeCl7cmV0dXJufXg9dHJ1ZTtpZihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGFyZ3VtZW50cy5jYWxsZWUsZmFsc2UpO28ucmVhZHkoKX0sZmFsc2UpfWVsc2V7aWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQpe2RvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe2RvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGFyZ3VtZW50cy5jYWxsZWUpO28ucmVhZHkoKX19KTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJmw9PWwudG9wKXsoZnVuY3Rpb24oKXtpZihvLmlzUmVhZHkpe3JldHVybn10cnl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goRSl7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDApO3JldHVybn1vLnJlYWR5KCl9KSgpfX19by5ldmVudC5hZGQobCwibG9hZCIsby5yZWFkeSl9by5lYWNoKCgiYmx1cixmb2N1cyxsb2FkLHJlc2l6ZSxzY3JvbGwsdW5sb2FkLGNsaWNrLGRibGNsaWNrLG1vdXNlZG93bixtb3VzZXVwLG1vdXNlbW92ZSxtb3VzZW92ZXIsbW91c2VvdXQsbW91c2VlbnRlcixtb3VzZWxlYXZlLGNoYW5nZSxzZWxlY3Qsc3VibWl0LGtleWRvd24sa2V5cHJlc3Msa2V5dXAsZXJyb3IiKS5zcGxpdCgiLCIpLGZ1bmN0aW9uKEYsRSl7by5mbltFXT1mdW5jdGlvbihHKXtyZXR1cm4gRz90aGlzLmJpbmQoRSxHKTp0aGlzLnRyaWdnZXIoRSl9fSk7byhsKS5iaW5kKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBFIGluIG8uY2FjaGUpe2lmKEUhPTEmJm8uY2FjaGVbRV0uaGFuZGxlKXtvLmV2ZW50LnJlbW92ZShvLmNhY2hlW0VdLmhhbmRsZS5lbGVtKX19fSk7KGZ1bmN0aW9uKCl7by5zdXBwb3J0PXt9O3ZhciBGPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxHPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSj0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKTtLLnN0eWxlLmRpc3BsYXk9Im5vbmUiO0suaW5uZXJIVE1MPScgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0iL2EiIHN0eWxlPSJjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41OyI+YTwvYT48c2VsZWN0PjxvcHRpb24+dGV4dDwvb3B0aW9uPjwvc2VsZWN0PjxvYmplY3Q+PHBhcmFtLz48L29iamVjdD4nO3ZhciBIPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxFPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighSHx8IUgubGVuZ3RofHwhRSl7cmV0dXJufW8uc3VwcG9ydD17bGVhZGluZ1doaXRlc3BhY2U6Sy5maXJzdENoaWxkLm5vZGVUeXBlPT0zLHRib2R5OiFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxvYmplY3RBbGw6ISFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhSy5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KEUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpFLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5OkUuc3R5bGUub3BhY2l0eT09PSIwLjUiLGNzc0Zsb2F0OiEhRS5zdHlsZS5jc3NGbG9hdCxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9O0cudHlwZT0idGV4dC9qYXZhc2NyaXB0Ijt0cnl7Ry5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgid2luZG93LiIrSisiPTE7IikpfWNhdGNoKEkpe31GLmluc2VydEJlZm9yZShHLEYuZmlyc3RDaGlsZCk7aWYobFtKXSl7by5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgbFtKXX1GLnJlbW92ZUNoaWxkKEcpO2lmKEsuYXR0YWNoRXZlbnQmJksuZmlyZUV2ZW50KXtLLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5jdGlvbigpe28uc3VwcG9ydC5ub0Nsb25lRXZlbnQ9ZmFsc2U7Sy5kZXRhY2hFdmVudCgib25jbGljayIsYXJndW1lbnRzLmNhbGxlZSl9KTtLLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKX1vKGZ1bmN0aW9uKCl7dmFyIEw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7TC5zdHlsZS53aWR0aD1MLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTCk7by5ib3hNb2RlbD1vLnN1cHBvcnQuYm94TW9kZWw9TC5vZmZzZXRXaWR0aD09PTI7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChMKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pfSkoKTt2YXIgdz1vLnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCI7by5wcm9wcz17ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsImZsb2F0Ijp3LGNzc0Zsb2F0Oncsc3R5bGVGbG9hdDp3LHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsdGFiaW5kZXg6InRhYkluZGV4In07by5mbi5leHRlbmQoe19sb2FkOm8uZm4ubG9hZCxsb2FkOmZ1bmN0aW9uKEcsSixLKXtpZih0eXBlb2YgRyE9PSJzdHJpbmciKXtyZXR1cm4gdGhpcy5fbG9hZChHKX12YXIgST1HLmluZGV4T2YoIiAiKTtpZihJPj0wKXt2YXIgRT1HLnNsaWNlKEksRy5sZW5ndGgpO0c9Ry5zbGljZSgwLEkpfXZhciBIPSJHRVQiO2lmKEope2lmKG8uaXNGdW5jdGlvbihKKSl7Sz1KO0o9bnVsbH1lbHNle2lmKHR5cGVvZiBKPT09Im9iamVjdCIpe0o9by5wYXJhbShKKTtIPSJQT1NUIn19fXZhciBGPXRoaXM7by5hamF4KHt1cmw6Ryx0eXBlOkgsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Sixjb21wbGV0ZTpmdW5jdGlvbihNLEwpe2lmKEw9PSJzdWNjZXNzInx8TD09Im5vdG1vZGlmaWVkIil7Ri5odG1sKEU/bygiPGRpdi8+IikuYXBwZW5kKE0ucmVzcG9uc2VUZXh0LnJlcGxhY2UoLzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9nLCIiKSkuZmluZChFKTpNLnJlc3BvbnNlVGV4dCl9aWYoSyl7Ri5lYWNoKEssW00ucmVzcG9uc2VUZXh0LEwsTV0pfX19KTtyZXR1cm4gdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG8ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9vLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fC9zZWxlY3R8dGV4dGFyZWEvaS50ZXN0KHRoaXMubm9kZU5hbWUpfHwvdGV4dHxoaWRkZW58cGFzc3dvcmR8c2VhcmNoL2kudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihFLEYpe3ZhciBHPW8odGhpcykudmFsKCk7cmV0dXJuIEc9PW51bGw/bnVsbDpvLmlzQXJyYXkoRyk/by5tYXAoRyxmdW5jdGlvbihJLEgpe3JldHVybntuYW1lOkYubmFtZSx2YWx1ZTpJfX0pOntuYW1lOkYubmFtZSx2YWx1ZTpHfX0pLmdldCgpfX0pO28uZWFjaCgiYWpheFN0YXJ0LGFqYXhTdG9wLGFqYXhDb21wbGV0ZSxhamF4RXJyb3IsYWpheFN1Y2Nlc3MsYWpheFNlbmQiLnNwbGl0KCIsIiksZnVuY3Rpb24oRSxGKXtvLmZuW0ZdPWZ1bmN0aW9uKEcpe3JldHVybiB0aGlzLmJpbmQoRixHKX19KTt2YXIgcj1lKCk7by5leHRlbmQoe2dldDpmdW5jdGlvbihFLEcsSCxGKXtpZihvLmlzRnVuY3Rpb24oRykpe0g9RztHPW51bGx9cmV0dXJuIG8uYWpheCh7dHlwZToiR0VUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKEUsRil7cmV0dXJuIG8uZ2V0KEUsbnVsbCxGLCJzY3JpcHQiKX0sZ2V0SlNPTjpmdW5jdGlvbihFLEYsRyl7cmV0dXJuIG8uZ2V0KEUsRixHLCJqc29uIil9LHBvc3Q6ZnVuY3Rpb24oRSxHLEgsRil7aWYoby5pc0Z1bmN0aW9uKEcpKXtIPUc7Rz17fX1yZXR1cm4gby5hamF4KHt0eXBlOiJQT1NUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKEUpe28uZXh0ZW5kKG8uYWpheFNldHRpbmdzLEUpfSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLGdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0RhdGE6dHJ1ZSxhc3luYzp0cnVlLHhocjpmdW5jdGlvbigpe3JldHVybiBsLkFjdGl2ZVhPYmplY3Q/bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIik6bmV3IFhNTEh0dHBSZXF1ZXN0KCl9LGFjY2VwdHM6e3htbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0OiJ0ZXh0L3BsYWluIixfZGVmYXVsdDoiKi8qIn19LGxhc3RNb2RpZmllZDp7fSxhamF4OmZ1bmN0aW9uKE0pe009by5leHRlbmQodHJ1ZSxNLG8uZXh0ZW5kKHRydWUse30sby5hamF4U2V0dGluZ3MsTSkpO3ZhciBXLEY9Lz1cPygmfCQpL2csUixWLEc9TS50eXBlLnRvVXBwZXJDYXNlKCk7aWYoTS5kYXRhJiZNLnByb2Nlc3NEYXRhJiZ0eXBlb2YgTS5kYXRhIT09InN0cmluZyIpe00uZGF0YT1vLnBhcmFtKE0uZGF0YSl9aWYoTS5kYXRhVHlwZT09Impzb25wIil7aWYoRz09IkdFVCIpe2lmKCFNLnVybC5tYXRjaChGKSl7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19ZWxzZXtpZighTS5kYXRhfHwhTS5kYXRhLm1hdGNoKEYpKXtNLmRhdGE9KE0uZGF0YT9NLmRhdGErIiYiOiIiKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19TS5kYXRhVHlwZT0ianNvbiJ9aWYoTS5kYXRhVHlwZT09Impzb24iJiYoTS5kYXRhJiZNLmRhdGEubWF0Y2goRil8fE0udXJsLm1hdGNoKEYpKSl7Vz0ianNvbnAiK3IrKztpZihNLmRhdGEpe00uZGF0YT0oTS5kYXRhKyIiKS5yZXBsYWNlKEYsIj0iK1crIiQxIil9TS51cmw9TS51cmwucmVwbGFjZShGLCI9IitXKyIkMSIpO00uZGF0YVR5cGU9InNjcmlwdCI7bFtXXT1mdW5jdGlvbihYKXtWPVg7SSgpO0woKTtsW1ddPWc7dHJ5e2RlbGV0ZSBsW1ddfWNhdGNoKFkpe31pZihIKXtILnJlbW92ZUNoaWxkKFQpfX19aWYoTS5kYXRhVHlwZT09InNjcmlwdCImJk0uY2FjaGU9PW51bGwpe00uY2FjaGU9ZmFsc2V9aWYoTS5jYWNoZT09PWZhbHNlJiZHPT0iR0VUIil7dmFyIEU9ZSgpO3ZhciBVPU0udXJsLnJlcGxhY2UoLyhcP3wmKV89Lio/KCZ8JCkvLCIkMV89IitFKyIkMiIpO00udXJsPVUrKChVPT1NLnVybCk/KE0udXJsLm1hdGNoKC9cPy8pPyImIjoiPyIpKyJfPSIrRToiIil9aWYoTS5kYXRhJiZHPT0iR0VUIil7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKStNLmRhdGE7TS5kYXRhPW51bGx9aWYoTS5nbG9iYWwmJiFvLmFjdGl2ZSsrKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpfXZhciBRPS9eKFx3KzopP1wvXC8oW15cLz8jXSspLy5leGVjKE0udXJsKTtpZihNLmRhdGFUeXBlPT0ic2NyaXB0IiYmRz09IkdFVCImJlEmJihRWzFdJiZRWzFdIT1sb2NhdGlvbi5wcm90b2NvbHx8UVsyXSE9bG9jYXRpb24uaG9zdCkpe3ZhciBIPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7VC5zcmM9TS51cmw7aWYoTS5zY3JpcHRDaGFyc2V0KXtULmNoYXJzZXQ9TS5zY3JpcHRDaGFyc2V0fWlmKCFXKXt2YXIgTz1mYWxzZTtULm9ubG9hZD1ULm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKCFPJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT0ibG9hZGVkInx8dGhpcy5yZWFkeVN0YXRlPT0iY29tcGxldGUiKSl7Tz10cnVlO0koKTtMKCk7VC5vbmxvYWQ9VC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDtILnJlbW92ZUNoaWxkKFQpfX19SC5hcHBlbmRDaGlsZChUKTtyZXR1cm4gZ312YXIgSz1mYWxzZTt2YXIgSj1NLnhocigpO2lmKE0udXNlcm5hbWUpe0oub3BlbihHLE0udXJsLE0uYXN5bmMsTS51c2VybmFtZSxNLnBhc3N3b3JkKX1lbHNle0oub3BlbihHLE0udXJsLE0uYXN5bmMpfXRyeXtpZihNLmRhdGEpe0ouc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixNLmNvbnRlbnRUeXBlKX1pZihNLmlmTW9kaWZpZWQpe0ouc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLG8ubGFzdE1vZGlmaWVkW00udXJsXXx8IlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIil9Si5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTtKLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsTS5kYXRhVHlwZSYmTS5hY2NlcHRzW00uZGF0YVR5cGVdP00uYWNjZXB0c1tNLmRhdGFUeXBlXSsiLCAqLyoiOk0uYWNjZXB0cy5fZGVmYXVsdCl9Y2F0Y2goUyl7fWlmKE0uYmVmb3JlU2VuZCYmTS5iZWZvcmVTZW5kKEosTSk9PT1mYWxzZSl7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9Si5hYm9ydCgpO3JldHVybiBmYWxzZX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U2VuZCIsW0osTV0pfXZhciBOPWZ1bmN0aW9uKFgpe2lmKEoucmVhZHlTdGF0ZT09MCl7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGw7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9fX1lbHNle2lmKCFLJiZKJiYoSi5yZWFkeVN0YXRlPT00fHxYPT0idGltZW91dCIpKXtLPXRydWU7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGx9Uj1YPT0idGltZW91dCI/InRpbWVvdXQiOiFvLmh0dHBTdWNjZXNzKEopPyJlcnJvciI6TS5pZk1vZGlmaWVkJiZvLmh0dHBOb3RNb2RpZmllZChKLE0udXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjtpZihSPT0ic3VjY2VzcyIpe3RyeXtWPW8uaHR0cERhdGEoSixNLmRhdGFUeXBlLE0pfWNhdGNoKFope1I9InBhcnNlcmVycm9yIn19aWYoUj09InN1Y2Nlc3MiKXt2YXIgWTt0cnl7WT1KLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIil9Y2F0Y2goWil7fWlmKE0uaWZNb2RpZmllZCYmWSl7by5sYXN0TW9kaWZpZWRbTS51cmxdPVl9aWYoIVcpe0koKX19ZWxzZXtvLmhhbmRsZUVycm9yKE0sSixSKX1MKCk7aWYoWCl7Si5hYm9ydCgpfWlmKE0uYXN5bmMpe0o9bnVsbH19fX07aWYoTS5hc3luYyl7dmFyIFA9c2V0SW50ZXJ2YWwoTiwxMyk7aWYoTS50aW1lb3V0PjApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihKJiYhSyl7TigidGltZW91dCIpfX0sTS50aW1lb3V0KX19dHJ5e0ouc2VuZChNLmRhdGEpfWNhdGNoKFMpe28uaGFuZGxlRXJyb3IoTSxKLG51bGwsUyl9aWYoIU0uYXN5bmMpe04oKX1mdW5jdGlvbiBJKCl7aWYoTS5zdWNjZXNzKXtNLnN1Y2Nlc3MoVixSKX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U3VjY2VzcyIsW0osTV0pfX1mdW5jdGlvbiBMKCl7aWYoTS5jb21wbGV0ZSl7TS5jb21wbGV0ZShKLFIpfWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW0osTV0pfWlmKE0uZ2xvYmFsJiYhLS1vLmFjdGl2ZSl7by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX1yZXR1cm4gSn0saGFuZGxlRXJyb3I6ZnVuY3Rpb24oRixILEUsRyl7aWYoRi5lcnJvcil7Ri5lcnJvcihILEUsRyl9aWYoRi5nbG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheEVycm9yIixbSCxGLEddKX19LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKEYpe3RyeXtyZXR1cm4gIUYuc3RhdHVzJiZsb2NhdGlvbi5wcm90b2NvbD09ImZpbGU6Inx8KEYuc3RhdHVzPj0yMDAmJkYuc3RhdHVzPDMwMCl8fEYuc3RhdHVzPT0zMDR8fEYuc3RhdHVzPT0xMjIzfWNhdGNoKEUpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihHLEUpe3RyeXt2YXIgSD1HLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7cmV0dXJuIEcuc3RhdHVzPT0zMDR8fEg9PW8ubGFzdE1vZGlmaWVkW0VdfWNhdGNoKEYpe31yZXR1cm4gZmFsc2V9LGh0dHBEYXRhOmZ1bmN0aW9uKEosSCxHKXt2YXIgRj1KLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5cGUiKSxFPUg9PSJ4bWwifHwhSCYmRiYmRi5pbmRleE9mKCJ4bWwiKT49MCxJPUU/Si5yZXNwb25zZVhNTDpKLnJlc3BvbnNlVGV4dDtpZihFJiZJLmRvY3VtZW50RWxlbWVudC50YWdOYW1lPT0icGFyc2VyZXJyb3IiKXt0aHJvdyJwYXJzZXJlcnJvciJ9aWYoRyYmRy5kYXRhRmlsdGVyKXtJPUcuZGF0YUZpbHRlcihJLEgpfWlmKHR5cGVvZiBJPT09InN0cmluZyIpe2lmKEg9PSJzY3JpcHQiKXtvLmdsb2JhbEV2YWwoSSl9aWYoSD09Impzb24iKXtJPWxbImV2YWwiXSgiKCIrSSsiKSIpfX1yZXR1cm4gSX0scGFyYW06ZnVuY3Rpb24oRSl7dmFyIEc9W107ZnVuY3Rpb24gSChJLEope0dbRy5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEopfWlmKG8uaXNBcnJheShFKXx8RS5qcXVlcnkpe28uZWFjaChFLGZ1bmN0aW9uKCl7SCh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KX1lbHNle2Zvcih2YXIgRiBpbiBFKXtpZihvLmlzQXJyYXkoRVtGXSkpe28uZWFjaChFW0ZdLGZ1bmN0aW9uKCl7SChGLHRoaXMpfSl9ZWxzZXtIKEYsby5pc0Z1bmN0aW9uKEVbRl0pP0VbRl0oKTpFW0ZdKX19fXJldHVybiBHLmpvaW4oIiYiKS5yZXBsYWNlKC8lMjAvZywiKyIpfX0pO3ZhciBtPXt9LG4sZD1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtmdW5jdGlvbiB0KEYsRSl7dmFyIEc9e307by5lYWNoKGQuY29uY2F0LmFwcGx5KFtdLGQuc2xpY2UoMCxFKSksZnVuY3Rpb24oKXtHW3RoaXNdPUZ9KTtyZXR1cm4gR31vLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihKLEwpe2lmKEope3JldHVybiB0aGlzLmFuaW1hdGUodCgic2hvdyIsMyksSixMKX1lbHNle2Zvcih2YXIgSD0wLEY9dGhpcy5sZW5ndGg7SDxGO0grKyl7dmFyIEU9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiKTt0aGlzW0hdLnN0eWxlLmRpc3BsYXk9RXx8IiI7aWYoby5jc3ModGhpc1tIXSwiZGlzcGxheSIpPT09Im5vbmUiKXt2YXIgRz10aGlzW0hdLnRhZ05hbWUsSztpZihtW0ddKXtLPW1bR119ZWxzZXt2YXIgST1vKCI8IitHKyIgLz4iKS5hcHBlbmRUbygiYm9keSIpO0s9SS5jc3MoImRpc3BsYXkiKTtpZihLPT09Im5vbmUiKXtLPSJibG9jayJ9SS5yZW1vdmUoKTttW0ddPUt9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiLEspfX1mb3IodmFyIEg9MCxGPXRoaXMubGVuZ3RoO0g8RjtIKyspe3RoaXNbSF0uc3R5bGUuZGlzcGxheT1vLmRhdGEodGhpc1tIXSwib2xkZGlzcGxheSIpfHwiIn1yZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oSCxJKXtpZihIKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQoImhpZGUiLDMpLEgsSSl9ZWxzZXtmb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3ZhciBFPW8uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5Iik7aWYoIUUmJkUhPT0ibm9uZSIpe28uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5IixvLmNzcyh0aGlzW0ddLCJkaXNwbGF5IikpfX1mb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3RoaXNbR10uc3R5bGUuZGlzcGxheT0ibm9uZSJ9cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOm8uZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihHLEYpe3ZhciBFPXR5cGVvZiBHPT09ImJvb2xlYW4iO3JldHVybiBvLmlzRnVuY3Rpb24oRykmJm8uaXNGdW5jdGlvbihGKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpOkc9PW51bGx8fEU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIEg9RT9HOm8odGhpcykuaXMoIjpoaWRkZW4iKTtvKHRoaXMpW0g/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZSh0KCJ0b2dnbGUiLDMpLEcsRil9LGZhZGVUbzpmdW5jdGlvbihFLEcsRil7cmV0dXJuIHRoaXMuYW5pbWF0ZSh7b3BhY2l0eTpHfSxFLEYpfSxhbmltYXRlOmZ1bmN0aW9uKEksRixILEcpe3ZhciBFPW8uc3BlZWQoRixILEcpO3JldHVybiB0aGlzW0UucXVldWU9PT1mYWxzZT8iZWFjaCI6InF1ZXVlIl0oZnVuY3Rpb24oKXt2YXIgSz1vLmV4dGVuZCh7fSxFKSxNLEw9dGhpcy5ub2RlVHlwZT09MSYmbyh0aGlzKS5pcygiOmhpZGRlbiIpLEo9dGhpcztmb3IoTSBpbiBJKXtpZihJW01dPT0iaGlkZSImJkx8fElbTV09PSJzaG93IiYmIUwpe3JldHVybiBLLmNvbXBsZXRlLmNhbGwodGhpcyl9aWYoKE09PSJoZWlnaHQifHxNPT0id2lkdGgiKSYmdGhpcy5zdHlsZSl7Sy5kaXNwbGF5PW8uY3NzKHRoaXMsImRpc3BsYXkiKTtLLm92ZXJmbG93PXRoaXMuc3R5bGUub3ZlcmZsb3d9fWlmKEsub3ZlcmZsb3chPW51bGwpe3RoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiJ9Sy5jdXJBbmltPW8uZXh0ZW5kKHt9LEkpO28uZWFjaChJLGZ1bmN0aW9uKE8sUyl7dmFyIFI9bmV3IG8uZngoSixLLE8pO2lmKC90b2dnbGV8c2hvd3xoaWRlLy50ZXN0KFMpKXtSW1M9PSJ0b2dnbGUiP0w/InNob3ciOiJoaWRlIjpTXShJKX1lbHNle3ZhciBRPVMudG9TdHJpbmcoKS5tYXRjaCgvXihbKy1dPSk/KFtcZCstLl0rKSguKikkLyksVD1SLmN1cih0cnVlKXx8MDtpZihRKXt2YXIgTj1wYXJzZUZsb2F0KFFbMl0pLFA9UVszXXx8InB4IjtpZihQIT0icHgiKXtKLnN0eWxlW09dPShOfHwxKStQO1Q9KChOfHwxKS9SLmN1cih0cnVlKSkqVDtKLnN0eWxlW09dPVQrUH1pZihRWzFdKXtOPSgoUVsxXT09Ii09Ij8tMToxKSpOKStUfVIuY3VzdG9tKFQsTixQKX1lbHNle1IuY3VzdG9tKFQsUywiIil9fX0pO3JldHVybiB0cnVlfSl9LHN0b3A6ZnVuY3Rpb24oRixFKXt2YXIgRz1vLnRpbWVycztpZihGKXt0aGlzLnF1ZXVlKFtdKX10aGlzLmVhY2goZnVuY3Rpb24oKXtmb3IodmFyIEg9Ry5sZW5ndGgtMTtIPj0wO0gtLSl7aWYoR1tIXS5lbGVtPT10aGlzKXtpZihFKXtHW0hdKHRydWUpfUcuc3BsaWNlKEgsMSl9fX0pO2lmKCFFKXt0aGlzLmRlcXVldWUoKX1yZXR1cm4gdGhpc319KTtvLmVhY2goe3NsaWRlRG93bjp0KCJzaG93IiwxKSxzbGlkZVVwOnQoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOnQoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyxIKXtyZXR1cm4gdGhpcy5hbmltYXRlKEYsRyxIKX19KTtvLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oRyxILEYpe3ZhciBFPXR5cGVvZiBHPT09Im9iamVjdCI/Rzp7Y29tcGxldGU6Rnx8IUYmJkh8fG8uaXNGdW5jdGlvbihHKSYmRyxkdXJhdGlvbjpHLGVhc2luZzpGJiZIfHxIJiYhby5pc0Z1bmN0aW9uKEgpJiZIfTtFLmR1cmF0aW9uPW8uZngub2ZmPzA6dHlwZW9mIEUuZHVyYXRpb249PT0ibnVtYmVyIj9FLmR1cmF0aW9uOm8uZnguc3BlZWRzW0UuZHVyYXRpb25dfHxvLmZ4LnNwZWVkcy5fZGVmYXVsdDtFLm9sZD1FLmNvbXBsZXRlO0UuY29tcGxldGU9ZnVuY3Rpb24oKXtpZihFLnF1ZXVlIT09ZmFsc2Upe28odGhpcykuZGVxdWV1ZSgpfWlmKG8uaXNGdW5jdGlvbihFLm9sZCkpe0Uub2xkLmNhbGwodGhpcyl9fTtyZXR1cm4gRX0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oRyxILEUsRil7cmV0dXJuIEUrRipHfSxzd2luZzpmdW5jdGlvbihHLEgsRSxGKXtyZXR1cm4oKC1NYXRoLmNvcyhHKk1hdGguUEkpLzIpKzAuNSkqRitFfX0sdGltZXJzOltdLGZ4OmZ1bmN0aW9uKEYsRSxHKXt0aGlzLm9wdGlvbnM9RTt0aGlzLmVsZW09Rjt0aGlzLnByb3A9RztpZighRS5vcmlnKXtFLm9yaWc9e319fX0pO28uZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuc3RlcCl7dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyl9KG8uZnguc3RlcFt0aGlzLnByb3BdfHxvLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpO2lmKCh0aGlzLnByb3A9PSJoZWlnaHQifHx0aGlzLnByb3A9PSJ3aWR0aCIpJiZ0aGlzLmVsZW0uc3R5bGUpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fSxjdXI6ZnVuY3Rpb24oRil7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpe3JldHVybiB0aGlzLmVsZW1bdGhpcy5wcm9wXX12YXIgRT1wYXJzZUZsb2F0KG8uY3NzKHRoaXMuZWxlbSx0aGlzLnByb3AsRikpO3JldHVybiBFJiZFPi0xMDAwMD9FOnBhcnNlRmxvYXQoby5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oSSxILEcpe3RoaXMuc3RhcnRUaW1lPWUoKTt0aGlzLnN0YXJ0PUk7dGhpcy5lbmQ9SDt0aGlzLnVuaXQ9R3x8dGhpcy51bml0fHwicHgiO3RoaXMubm93PXRoaXMuc3RhcnQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0wO3ZhciBFPXRoaXM7ZnVuY3Rpb24gRihKKXtyZXR1cm4gRS5zdGVwKEopfUYuZWxlbT10aGlzLmVsZW07aWYoRigpJiZvLnRpbWVycy5wdXNoKEYpJiYhbil7bj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBLPW8udGltZXJzO2Zvcih2YXIgSj0wO0o8Sy5sZW5ndGg7SisrKXtpZighS1tKXSgpKXtLLnNwbGljZShKLS0sMSl9fWlmKCFLLmxlbmd0aCl7Y2xlYXJJbnRlcnZhbChuKTtuPWd9fSwxMyl9fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1vLmF0dHIodGhpcy5lbGVtLnN0eWxlLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLnByb3A9PSJ3aWR0aCJ8fHRoaXMucHJvcD09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO28odGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPW8uYXR0cih0aGlzLmVsZW0uc3R5bGUsdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuaGlkZT10cnVlO3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksMCl9LHN0ZXA6ZnVuY3Rpb24oSCl7dmFyIEc9ZSgpO2lmKEh8fEc+PXRoaXMub3B0aW9ucy5kdXJhdGlvbit0aGlzLnN0YXJ0VGltZSl7dGhpcy5ub3c9dGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO3ZhciBFPXRydWU7Zm9yKHZhciBGIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtGXSE9PXRydWUpe0U9ZmFsc2V9fWlmKEUpe2lmKHRoaXMub3B0aW9ucy5kaXNwbGF5IT1udWxsKXt0aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhpcy5vcHRpb25zLm92ZXJmbG93O3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PXRoaXMub3B0aW9ucy5kaXNwbGF5O2lmKG8uY3NzKHRoaXMuZWxlbSwiZGlzcGxheSIpPT0ibm9uZSIpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fWlmKHRoaXMub3B0aW9ucy5oaWRlKXtvKHRoaXMuZWxlbSkuaGlkZSgpfWlmKHRoaXMub3B0aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMuc2hvdyl7Zm9yKHZhciBJIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtvLmF0dHIodGhpcy5lbGVtLnN0eWxlLEksdGhpcy5vcHRpb25zLm9yaWdbSV0pfX10aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle3ZhciBKPUctdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1KL3RoaXMub3B0aW9ucy5kdXJhdGlvbjt0aGlzLnBvcz1vLmVhc2luZ1t0aGlzLm9wdGlvbnMuZWFzaW5nfHwoby5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIildKHRoaXMuc3RhdGUsSiwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTt0aGlzLm5vdz10aGlzLnN0YXJ0KygodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3MpO3RoaXMudXBkYXRlKCl9cmV0dXJuIHRydWV9fTtvLmV4dGVuZChvLmZ4LHtzcGVlZHM6e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlvbihFKXtvLmF0dHIoRS5lbGVtLnN0eWxlLCJvcGFjaXR5IixFLm5vdyl9LF9kZWZhdWx0OmZ1bmN0aW9uKEUpe2lmKEUuZWxlbS5zdHlsZSYmRS5lbGVtLnN0eWxlW0UucHJvcF0hPW51bGwpe0UuZWxlbS5zdHlsZVtFLnByb3BdPUUubm93K0UudW5pdH1lbHNle0UuZWxlbVtFLnByb3BdPUUubm93fX19fSk7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7by5mbi5vZmZzZXQ9ZnVuY3Rpb24oKXtpZighdGhpc1swXSl7cmV0dXJue3RvcDowLGxlZnQ6MH19aWYodGhpc1swXT09PXRoaXNbMF0ub3duZXJEb2N1bWVudC5ib2R5KXtyZXR1cm4gby5vZmZzZXQuYm9keU9mZnNldCh0aGlzWzBdKX12YXIgRz10aGlzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEo9dGhpc1swXS5vd25lckRvY3VtZW50LEY9Si5ib2R5LEU9Si5kb2N1bWVudEVsZW1lbnQsTD1FLmNsaWVudFRvcHx8Ri5jbGllbnRUb3B8fDAsSz1FLmNsaWVudExlZnR8fEYuY2xpZW50TGVmdHx8MCxJPUcudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0fHxvLmJveE1vZGVsJiZFLnNjcm9sbFRvcHx8Ri5zY3JvbGxUb3ApLUwsSD1HLmxlZnQrKHNlbGYucGFnZVhPZmZzZXR8fG8uYm94TW9kZWwmJkUuc2Nyb2xsTGVmdHx8Ri5zY3JvbGxMZWZ0KS1LO3JldHVybnt0b3A6SSxsZWZ0Okh9fX1lbHNle28uZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pe3JldHVybnt0b3A6MCxsZWZ0OjB9fWlmKHRoaXNbMF09PT10aGlzWzBdLm93bmVyRG9jdW1lbnQuYm9keSl7cmV0dXJuIG8ub2Zmc2V0LmJvZHlPZmZzZXQodGhpc1swXSl9by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgSj10aGlzWzBdLEc9Si5vZmZzZXRQYXJlbnQsRj1KLE89Si5vd25lckRvY3VtZW50LE0sSD1PLmRvY3VtZW50RWxlbWVudCxLPU8uYm9keSxMPU8uZGVmYXVsdFZpZXcsRT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKSxOPUoub2Zmc2V0VG9wLEk9Si5vZmZzZXRMZWZ0O3doaWxlKChKPUoucGFyZW50Tm9kZSkmJkohPT1LJiZKIT09SCl7TT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKTtOLT1KLnNjcm9sbFRvcCxJLT1KLnNjcm9sbExlZnQ7aWYoSj09PUcpe04rPUoub2Zmc2V0VG9wLEkrPUoub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKG8ub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoSi50YWdOYW1lKSkpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1GPUcsRz1KLm9mZnNldFBhcmVudH1pZihvLm9mZnNldC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUmJk0ub3ZlcmZsb3chPT0idmlzaWJsZSIpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1FPU19aWYoRS5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fEUucG9zaXRpb249PT0ic3RhdGljIil7Tis9Sy5vZmZzZXRUb3AsSSs9Sy5vZmZzZXRMZWZ0fWlmKEUucG9zaXRpb249PT0iZml4ZWQiKXtOKz1NYXRoLm1heChILnNjcm9sbFRvcCxLLnNjcm9sbFRvcCksSSs9TWF0aC5tYXgoSC5zY3JvbGxMZWZ0LEsuc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDpOLGxlZnQ6SX19fW8ub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5pbml0aWFsaXplZCl7cmV0dXJufXZhciBMPWRvY3VtZW50LmJvZHksRj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxILEcsTixJLE0sRSxKPUwuc3R5bGUubWFyZ2luVG9wLEs9JzxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PGRpdj48L2Rpdj48L2Rpdj48dGFibGUgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPic7TT17cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9O2ZvcihFIGluIE0pe0Yuc3R5bGVbRV09TVtFXX1GLmlubmVySFRNTD1LO0wuaW5zZXJ0QmVmb3JlKEYsTC5maXJzdENoaWxkKTtIPUYuZmlyc3RDaGlsZCxHPUguZmlyc3RDaGlsZCxJPUgubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxkO3RoaXMuZG9lc05vdEFkZEJvcmRlcj0oRy5vZmZzZXRUb3AhPT01KTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPShJLm9mZnNldFRvcD09PTUpO0guc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsSC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3RoaXMuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlPShHLm9mZnNldFRvcD09PS01KTtMLnN0eWxlLm1hcmdpblRvcD0iMXB4Ijt0aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0PShMLm9mZnNldFRvcD09PTApO0wuc3R5bGUubWFyZ2luVG9wPUo7TC5yZW1vdmVDaGlsZChGKTt0aGlzLmluaXRpYWxpemVkPXRydWV9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oRSl7by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgRz1FLm9mZnNldFRvcCxGPUUub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Rys9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luVG9wIix0cnVlKSwxMCl8fDAsRis9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luTGVmdCIsdHJ1ZSksMTApfHwwfXJldHVybnt0b3A6RyxsZWZ0OkZ9fX07by5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIEk9MCxIPTAsRjtpZih0aGlzWzBdKXt2YXIgRz10aGlzLm9mZnNldFBhcmVudCgpLEo9dGhpcy5vZmZzZXQoKSxFPS9eYm9keXxodG1sJC9pLnRlc3QoR1swXS50YWdOYW1lKT97dG9wOjAsbGVmdDowfTpHLm9mZnNldCgpO0oudG9wLT1qKHRoaXMsIm1hcmdpblRvcCIpO0oubGVmdC09aih0aGlzLCJtYXJnaW5MZWZ0Iik7RS50b3ArPWooRywiYm9yZGVyVG9wV2lkdGgiKTtFLmxlZnQrPWooRywiYm9yZGVyTGVmdFdpZHRoIik7Rj17dG9wOkoudG9wLUUudG9wLGxlZnQ6Si5sZWZ0LUUubGVmdH19cmV0dXJuIEZ9LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3ZhciBFPXRoaXNbMF0ub2Zmc2V0UGFyZW50fHxkb2N1bWVudC5ib2R5O3doaWxlKEUmJighL15ib2R5fGh0bWwkL2kudGVzdChFLnRhZ05hbWUpJiZvLmNzcyhFLCJwb3NpdGlvbiIpPT0ic3RhdGljIikpe0U9RS5vZmZzZXRQYXJlbnR9cmV0dXJuIG8oRSl9fSk7by5lYWNoKFsiTGVmdCIsIlRvcCJdLGZ1bmN0aW9uKEYsRSl7dmFyIEc9InNjcm9sbCIrRTtvLmZuW0ddPWZ1bmN0aW9uKEgpe2lmKCF0aGlzWzBdKXtyZXR1cm4gbnVsbH1yZXR1cm4gSCE9PWc/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09bHx8dGhpcz09ZG9jdW1lbnQ/bC5zY3JvbGxUbyghRj9IOm8obCkuc2Nyb2xsTGVmdCgpLEY/SDpvKGwpLnNjcm9sbFRvcCgpKTp0aGlzW0ddPUh9KTp0aGlzWzBdPT1sfHx0aGlzWzBdPT1kb2N1bWVudD9zZWxmW0Y/InBhZ2VZT2Zmc2V0IjoicGFnZVhPZmZzZXQiXXx8by5ib3hNb2RlbCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W0ddfHxkb2N1bWVudC5ib2R5W0ddOnRoaXNbMF1bR119fSk7by5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihJLEcpe3ZhciBFPUk/IkxlZnQiOiJUb3AiLEg9ST8iUmlnaHQiOiJCb3R0b20iLEY9Ry50b0xvd2VyQ2FzZSgpO28uZm5bImlubmVyIitHXT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBdP28uY3NzKHRoaXNbMF0sRixmYWxzZSwicGFkZGluZyIpOm51bGx9O28uZm5bIm91dGVyIitHXT1mdW5jdGlvbihLKXtyZXR1cm4gdGhpc1swXT9vLmNzcyh0aGlzWzBdLEYsZmFsc2UsSz8ibWFyZ2luIjoiYm9yZGVyIik6bnVsbH07dmFyIEo9Ry50b0xvd2VyQ2FzZSgpO28uZm5bSl09ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXNbMF09PWw/ZG9jdW1lbnQuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrR118fGRvY3VtZW50LmJvZHlbImNsaWVudCIrR106dGhpc1swXT09ZG9jdW1lbnQ/TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK0ddLGRvY3VtZW50LmJvZHlbInNjcm9sbCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK0ddLGRvY3VtZW50LmJvZHlbIm9mZnNldCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJvZmZzZXQiK0ddKTpLPT09Zz8odGhpcy5sZW5ndGg/by5jc3ModGhpc1swXSxKKTpudWxsKTp0aGlzLmNzcyhKLHR5cGVvZiBLPT09InN0cmluZyI/SzpLKyJweCIpfX0pfSkoKTsNCg0KLyoNCiAqIGpRdWVyeSB2YWxpZGF0aW9uIHBsdWctaW4gMS41LjENCiAqDQogKiBodHRwOi8vYmFzc2lzdGFuY2UuZGUvanF1ZXJ5LXBsdWdpbnMvanF1ZXJ5LXBsdWdpbi12YWxpZGF0aW9uLw0KICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9QbHVnaW5zL1ZhbGlkYXRpb24NCiAqDQogKiBDb3B5cmlnaHQgKGMpIDIwMDYgLSAyMDA4IEr2cm4gWmFlZmZlcmVyDQogKg0KICogJElkOiBqcXVlcnkudmFsaWRhdGUuanMgNjA5NiAyMDA5LTAxLTEyIDE0OjEyOjA0WiBqb2Vybi56YWVmZmVyZXIgJA0KICoNCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOg0KICogICBodHRwOi8vd3d3Lm9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL21pdC1saWNlbnNlLnBocA0KICogICBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLmh0bWwNCiAqLw0KKGZ1bmN0aW9uKCQpeyQuZXh0ZW5kKCQuZm4se3ZhbGlkYXRlOmZ1bmN0aW9uKG9wdGlvbnMpe2lmKCF0aGlzLmxlbmd0aCl7b3B0aW9ucyYmb3B0aW9ucy5kZWJ1ZyYmd2luZG93LmNvbnNvbGUmJmNvbnNvbGUud2Fybigibm90aGluZyBzZWxlY3RlZCwgY2FuJ3QgdmFsaWRhdGUsIHJldHVybmluZyBub3RoaW5nIik7cmV0dXJuO312YXIgdmFsaWRhdG9yPSQuZGF0YSh0aGlzWzBdLCd2YWxpZGF0b3InKTtpZih2YWxpZGF0b3Ipe3JldHVybiB2YWxpZGF0b3I7fXZhbGlkYXRvcj1uZXcgJC52YWxpZGF0b3Iob3B0aW9ucyx0aGlzWzBdKTskLmRhdGEodGhpc1swXSwndmFsaWRhdG9yJyx2YWxpZGF0b3IpO2lmKHZhbGlkYXRvci5zZXR0aW5ncy5vbnN1Ym1pdCl7dGhpcy5maW5kKCJpbnB1dCwgYnV0dG9uIikuZmlsdGVyKCIuY2FuY2VsIikuY2xpY2soZnVuY3Rpb24oKXt2YWxpZGF0b3IuY2FuY2VsU3VibWl0PXRydWU7fSk7dGhpcy5zdWJtaXQoZnVuY3Rpb24oZXZlbnQpe2lmKHZhbGlkYXRvci5zZXR0aW5ncy5kZWJ1ZylldmVudC5wcmV2ZW50RGVmYXVsdCgpO2Z1bmN0aW9uIGhhbmRsZSgpe2lmKHZhbGlkYXRvci5zZXR0aW5ncy5zdWJtaXRIYW5kbGVyKXt2YWxpZGF0b3Iuc2V0dGluZ3Muc3VibWl0SGFuZGxlci5jYWxsKHZhbGlkYXRvcix2YWxpZGF0b3IuY3VycmVudEZvcm0pO3JldHVybiBmYWxzZTt9cmV0dXJuIHRydWU7fWlmKHZhbGlkYXRvci5jYW5jZWxTdWJtaXQpe3ZhbGlkYXRvci5jYW5jZWxTdWJtaXQ9ZmFsc2U7cmV0dXJuIGhhbmRsZSgpO31pZih2YWxpZGF0b3IuZm9ybSgpKXtpZih2YWxpZGF0b3IucGVuZGluZ1JlcXVlc3Qpe3ZhbGlkYXRvci5mb3JtU3VibWl0dGVkPXRydWU7cmV0dXJuIGZhbHNlO31yZXR1cm4gaGFuZGxlKCk7fWVsc2V7dmFsaWRhdG9yLmZvY3VzSW52YWxpZCgpO3JldHVybiBmYWxzZTt9fSk7fXJldHVybiB2YWxpZGF0b3I7fSx2YWxpZDpmdW5jdGlvbigpe2lmKCQodGhpc1swXSkuaXMoJ2Zvcm0nKSl7cmV0dXJuIHRoaXMudmFsaWRhdGUoKS5mb3JtKCk7fWVsc2V7dmFyIHZhbGlkPWZhbHNlO3ZhciB2YWxpZGF0b3I9JCh0aGlzWzBdLmZvcm0pLnZhbGlkYXRlKCk7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFsaWR8PXZhbGlkYXRvci5lbGVtZW50KHRoaXMpO30pO3JldHVybiB2YWxpZDt9fSxyZW1vdmVBdHRyczpmdW5jdGlvbihhdHRyaWJ1dGVzKXt2YXIgcmVzdWx0PXt9LCRlbGVtZW50PXRoaXM7JC5lYWNoKGF0dHJpYnV0ZXMuc3BsaXQoL1xzLyksZnVuY3Rpb24oaW5kZXgsdmFsdWUpe3Jlc3VsdFt2YWx1ZV09JGVsZW1lbnQuYXR0cih2YWx1ZSk7JGVsZW1lbnQucmVtb3ZlQXR0cih2YWx1ZSk7fSk7cmV0dXJuIHJlc3VsdDt9LHJ1bGVzOmZ1bmN0aW9uKGNvbW1hbmQsYXJndW1lbnQpe3ZhciBlbGVtZW50PXRoaXNbMF07aWYoY29tbWFuZCl7dmFyIHNldHRpbmdzPSQuZGF0YShlbGVtZW50LmZvcm0sJ3ZhbGlkYXRvcicpLnNldHRpbmdzO3ZhciBzdGF0aWNSdWxlcz1zZXR0aW5ncy5ydWxlczt2YXIgZXhpc3RpbmdSdWxlcz0kLnZhbGlkYXRvci5zdGF0aWNSdWxlcyhlbGVtZW50KTtzd2l0Y2goY29tbWFuZCl7Y2FzZSJhZGQiOiQuZXh0ZW5kKGV4aXN0aW5nUnVsZXMsJC52YWxpZGF0b3Iubm9ybWFsaXplUnVsZShhcmd1bWVudCkpO3N0YXRpY1J1bGVzW2VsZW1lbnQubmFtZV09ZXhpc3RpbmdSdWxlcztpZihhcmd1bWVudC5tZXNzYWdlcylzZXR0aW5ncy5tZXNzYWdlc1tlbGVtZW50Lm5hbWVdPSQuZXh0ZW5kKHNldHRpbmdzLm1lc3NhZ2VzW2VsZW1lbnQubmFtZV0sYXJndW1lbnQubWVzc2FnZXMpO2JyZWFrO2Nhc2UicmVtb3ZlIjppZighYXJndW1lbnQpe2RlbGV0ZSBzdGF0aWNSdWxlc1tlbGVtZW50Lm5hbWVdO3JldHVybiBleGlzdGluZ1J1bGVzO312YXIgZmlsdGVyZWQ9e307JC5lYWNoKGFyZ3VtZW50LnNwbGl0KC9ccy8pLGZ1bmN0aW9uKGluZGV4LG1ldGhvZCl7ZmlsdGVyZWRbbWV0aG9kXT1leGlzdGluZ1J1bGVzW21ldGhvZF07ZGVsZXRlIGV4aXN0aW5nUnVsZXNbbWV0aG9kXTt9KTtyZXR1cm4gZmlsdGVyZWQ7fX12YXIgZGF0YT0kLnZhbGlkYXRvci5ub3JtYWxpemVSdWxlcygkLmV4dGVuZCh7fSwkLnZhbGlkYXRvci5tZXRhZGF0YVJ1bGVzKGVsZW1lbnQpLCQudmFsaWRhdG9yLmNsYXNzUnVsZXMoZWxlbWVudCksJC52YWxpZGF0b3IuYXR0cmlidXRlUnVsZXMoZWxlbWVudCksJC52YWxpZGF0b3Iuc3RhdGljUnVsZXMoZWxlbWVudCkpLGVsZW1lbnQpO2lmKGRhdGEucmVxdWlyZWQpe3ZhciBwYXJhbT1kYXRhLnJlcXVpcmVkO2RlbGV0ZSBkYXRhLnJlcXVpcmVkO2RhdGE9JC5leHRlbmQoe3JlcXVpcmVkOnBhcmFtfSxkYXRhKTt9cmV0dXJuIGRhdGE7fX0pOyQuZXh0ZW5kKCQuZXhwclsiOiJdLHtibGFuazpmdW5jdGlvbihhKXtyZXR1cm4hJC50cmltKGEudmFsdWUpO30sZmlsbGVkOmZ1bmN0aW9uKGEpe3JldHVybiEhJC50cmltKGEudmFsdWUpO30sdW5jaGVja2VkOmZ1bmN0aW9uKGEpe3JldHVybiFhLmNoZWNrZWQ7fX0pOyQuZm9ybWF0PWZ1bmN0aW9uKHNvdXJjZSxwYXJhbXMpe2lmKGFyZ3VtZW50cy5sZW5ndGg9PTEpcmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGFyZ3M9JC5tYWtlQXJyYXkoYXJndW1lbnRzKTthcmdzLnVuc2hpZnQoc291cmNlKTtyZXR1cm4gJC5mb3JtYXQuYXBwbHkodGhpcyxhcmdzKTt9O2lmKGFyZ3VtZW50cy5sZW5ndGg+MiYmcGFyYW1zLmNvbnN0cnVjdG9yIT1BcnJheSl7cGFyYW1zPSQubWFrZUFycmF5KGFyZ3VtZW50cykuc2xpY2UoMSk7fWlmKHBhcmFtcy5jb25zdHJ1Y3RvciE9QXJyYXkpe3BhcmFtcz1bcGFyYW1zXTt9JC5lYWNoKHBhcmFtcyxmdW5jdGlvbihpLG4pe3NvdXJjZT1zb3VyY2UucmVwbGFjZShuZXcgUmVnRXhwKCJcXHsiK2krIlxcfSIsImciKSxuKTt9KTtyZXR1cm4gc291cmNlO307JC52YWxpZGF0b3I9ZnVuY3Rpb24ob3B0aW9ucyxmb3JtKXt0aGlzLnNldHRpbmdzPSQuZXh0ZW5kKHt9LCQudmFsaWRhdG9yLmRlZmF1bHRzLG9wdGlvbnMpO3RoaXMuY3VycmVudEZvcm09Zm9ybTt0aGlzLmluaXQoKTt9OyQuZXh0ZW5kKCQudmFsaWRhdG9yLHtkZWZhdWx0czp7bWVzc2FnZXM6e30sZ3JvdXBzOnt9LHJ1bGVzOnt9LGVycm9yQ2xhc3M6ImVycm9yIixlcnJvckVsZW1lbnQ6ImxhYmVsIixmb2N1c0ludmFsaWQ6dHJ1ZSxlcnJvckNvbnRhaW5lcjokKFtdKSxlcnJvckxhYmVsQ29udGFpbmVyOiQoW10pLG9uc3VibWl0OnRydWUsaWdub3JlOltdLGlnbm9yZVRpdGxlOmZhbHNlLG9uZm9jdXNpbjpmdW5jdGlvbihlbGVtZW50KXt0aGlzLmxhc3RBY3RpdmU9ZWxlbWVudDtpZih0aGlzLnNldHRpbmdzLmZvY3VzQ2xlYW51cCYmIXRoaXMuYmxvY2tGb2N1c0NsZWFudXApe3RoaXMuc2V0dGluZ3MudW5oaWdobGlnaHQmJnRoaXMuc2V0dGluZ3MudW5oaWdobGlnaHQuY2FsbCh0aGlzLGVsZW1lbnQsdGhpcy5zZXR0aW5ncy5lcnJvckNsYXNzKTt0aGlzLmVycm9yc0ZvcihlbGVtZW50KS5oaWRlKCk7fX0sb25mb2N1c291dDpmdW5jdGlvbihlbGVtZW50KXtpZighdGhpcy5jaGVja2FibGUoZWxlbWVudCkmJihlbGVtZW50Lm5hbWUgaW4gdGhpcy5zdWJtaXR0ZWR8fCF0aGlzLm9wdGlvbmFsKGVsZW1lbnQpKSl7dGhpcy5lbGVtZW50KGVsZW1lbnQpO319LG9ua2V5dXA6ZnVuY3Rpb24oZWxlbWVudCl7aWYoZWxlbWVudC5uYW1lIGluIHRoaXMuc3VibWl0dGVkfHxlbGVtZW50PT10aGlzLmxhc3RFbGVtZW50KXt0aGlzLmVsZW1lbnQoZWxlbWVudCk7fX0sb25jbGljazpmdW5jdGlvbihlbGVtZW50KXtpZihlbGVtZW50Lm5hbWUgaW4gdGhpcy5zdWJtaXR0ZWQpdGhpcy5lbGVtZW50KGVsZW1lbnQpO30saGlnaGxpZ2h0OmZ1bmN0aW9uKGVsZW1lbnQsZXJyb3JDbGFzcyl7JChlbGVtZW50KS5hZGRDbGFzcyhlcnJvckNsYXNzKTt9LHVuaGlnaGxpZ2h0OmZ1bmN0aW9uKGVsZW1lbnQsZXJyb3JDbGFzcyl7JChlbGVtZW50KS5yZW1vdmVDbGFzcyhlcnJvckNsYXNzKTt9fSxzZXREZWZhdWx0czpmdW5jdGlvbihzZXR0aW5ncyl7JC5leHRlbmQoJC52YWxpZGF0b3IuZGVmYXVsdHMsc2V0dGluZ3MpO30sbWVzc2FnZXM6e3JlcXVpcmVkOiJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIscmVtb3RlOiJQbGVhc2UgZml4IHRoaXMgZmllbGQuIixlbWFpbDoiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4iLHVybDoiUGxlYXNlIGVudGVyIGEgdmFsaWQgVVJMLiIsZGF0ZToiUGxlYXNlIGVudGVyIGEgdmFsaWQgZGF0ZS4iLGRhdGVJU086IlBsZWFzZSBlbnRlciBhIHZhbGlkIGRhdGUgKElTTykuIixkYXRlREU6IkJpdHRlIGdlYmVuIFNpZSBlaW4gZ/xsdGlnZXMgRGF0dW0gZWluLiIsbnVtYmVyOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBudW1iZXIuIixudW1iZXJERToiQml0dGUgZ2ViZW4gU2llIGVpbmUgTnVtbWVyIGVpbi4iLGRpZ2l0czoiUGxlYXNlIGVudGVyIG9ubHkgZGlnaXRzIixjcmVkaXRjYXJkOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBjcmVkaXQgY2FyZCBudW1iZXIuIixlcXVhbFRvOiJQbGVhc2UgZW50ZXIgdGhlIHNhbWUgdmFsdWUgYWdhaW4uIixhY2NlcHQ6IlBsZWFzZSBlbnRlciBhIHZhbHVlIHdpdGggYSB2YWxpZCBleHRlbnNpb24uIixtYXhsZW5ndGg6JC5mb3JtYXQoIlBsZWFzZSBlbnRlciBubyBtb3JlIHRoYW4gezB9IGNoYXJhY3RlcnMuIiksbWlubGVuZ3RoOiQuZm9ybWF0KCJQbGVhc2UgZW50ZXIgYXQgbGVhc3QgezB9IGNoYXJhY3RlcnMuIikscmFuZ2VsZW5ndGg6JC5mb3JtYXQoIlBsZWFzZSBlbnRlciBhIHZhbHVlIGJldHdlZW4gezB9IGFuZCB7MX0gY2hhcmFjdGVycyBsb25nLiIpLHJhbmdlOiQuZm9ybWF0KCJQbGVhc2UgZW50ZXIgYSB2YWx1ZSBiZXR3ZWVuIHswfSBhbmQgezF9LiIpLG1heDokLmZvcm1hdCgiUGxlYXNlIGVudGVyIGEgdmFsdWUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHswfS4iKSxtaW46JC5mb3JtYXQoIlBsZWFzZSBlbnRlciBhIHZhbHVlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB7MH0uIil9LGF1dG9DcmVhdGVSYW5nZXM6ZmFsc2UscHJvdG90eXBlOntpbml0OmZ1bmN0aW9uKCl7dGhpcy5sYWJlbENvbnRhaW5lcj0kKHRoaXMuc2V0dGluZ3MuZXJyb3JMYWJlbENvbnRhaW5lcik7dGhpcy5lcnJvckNvbnRleHQ9dGhpcy5sYWJlbENvbnRhaW5lci5sZW5ndGgmJnRoaXMubGFiZWxDb250YWluZXJ8fCQodGhpcy5jdXJyZW50Rm9ybSk7dGhpcy5jb250YWluZXJzPSQodGhpcy5zZXR0aW5ncy5lcnJvckNvbnRhaW5lcikuYWRkKHRoaXMuc2V0dGluZ3MuZXJyb3JMYWJlbENvbnRhaW5lcik7dGhpcy5zdWJtaXR0ZWQ9e307dGhpcy52YWx1ZUNhY2hlPXt9O3RoaXMucGVuZGluZ1JlcXVlc3Q9MDt0aGlzLnBlbmRpbmc9e307dGhpcy5pbnZhbGlkPXt9O3RoaXMucmVzZXQoKTt2YXIgZ3JvdXBzPSh0aGlzLmdyb3Vwcz17fSk7JC5lYWNoKHRoaXMuc2V0dGluZ3MuZ3JvdXBzLGZ1bmN0aW9uKGtleSx2YWx1ZSl7JC5lYWNoKHZhbHVlLnNwbGl0KC9ccy8pLGZ1bmN0aW9uKGluZGV4LG5hbWUpe2dyb3Vwc1tuYW1lXT1rZXk7fSk7fSk7dmFyIHJ1bGVzPXRoaXMuc2V0dGluZ3MucnVsZXM7JC5lYWNoKHJ1bGVzLGZ1bmN0aW9uKGtleSx2YWx1ZSl7cnVsZXNba2V5XT0kLnZhbGlkYXRvci5ub3JtYWxpemVSdWxlKHZhbHVlKTt9KTtmdW5jdGlvbiBkZWxlZ2F0ZShldmVudCl7dmFyIHZhbGlkYXRvcj0kLmRhdGEodGhpc1swXS5mb3JtLCJ2YWxpZGF0b3IiKTt2YWxpZGF0b3Iuc2V0dGluZ3NbIm9uIitldmVudC50eXBlXSYmdmFsaWRhdG9yLnNldHRpbmdzWyJvbiIrZXZlbnQudHlwZV0uY2FsbCh2YWxpZGF0b3IsdGhpc1swXSk7fSQodGhpcy5jdXJyZW50Rm9ybSkuZGVsZWdhdGUoImZvY3VzaW4gZm9jdXNvdXQga2V5dXAiLCI6dGV4dCwgOnBhc3N3b3JkLCA6ZmlsZSwgc2VsZWN0LCB0ZXh0YXJlYSIsZGVsZWdhdGUpLmRlbGVnYXRlKCJjbGljayIsIjpyYWRpbywgOmNoZWNrYm94IixkZWxlZ2F0ZSk7aWYodGhpcy5zZXR0aW5ncy5pbnZhbGlkSGFuZGxlcikkKHRoaXMuY3VycmVudEZvcm0pLmJpbmQoImludmFsaWQtZm9ybS52YWxpZGF0ZSIsdGhpcy5zZXR0aW5ncy5pbnZhbGlkSGFuZGxlcik7fSxmb3JtOmZ1bmN0aW9uKCl7dGhpcy5jaGVja0Zvcm0oKTskLmV4dGVuZCh0aGlzLnN1Ym1pdHRlZCx0aGlzLmVycm9yTWFwKTt0aGlzLmludmFsaWQ9JC5leHRlbmQoe30sdGhpcy5lcnJvck1hcCk7aWYoIXRoaXMudmFsaWQoKSkkKHRoaXMuY3VycmVudEZvcm0pLnRyaWdnZXJIYW5kbGVyKCJpbnZhbGlkLWZvcm0iLFt0aGlzXSk7dGhpcy5zaG93RXJyb3JzKCk7cmV0dXJuIHRoaXMudmFsaWQoKTt9LGNoZWNrRm9ybTpmdW5jdGlvbigpe3RoaXMucHJlcGFyZUZvcm0oKTtmb3IodmFyIGk9MCxlbGVtZW50cz0odGhpcy5jdXJyZW50RWxlbWVudHM9dGhpcy5lbGVtZW50cygpKTtlbGVtZW50c1tpXTtpKyspe3RoaXMuY2hlY2soZWxlbWVudHNbaV0pO31yZXR1cm4gdGhpcy52YWxpZCgpO30sZWxlbWVudDpmdW5jdGlvbihlbGVtZW50KXtlbGVtZW50PXRoaXMuY2xlYW4oZWxlbWVudCk7dGhpcy5sYXN0RWxlbWVudD1lbGVtZW50O3RoaXMucHJlcGFyZUVsZW1lbnQoZWxlbWVudCk7dGhpcy5jdXJyZW50RWxlbWVudHM9JChlbGVtZW50KTt2YXIgcmVzdWx0PXRoaXMuY2hlY2soZWxlbWVudCk7aWYocmVzdWx0KXtkZWxldGUgdGhpcy5pbnZhbGlkW2VsZW1lbnQubmFtZV07fWVsc2V7dGhpcy5pbnZhbGlkW2VsZW1lbnQubmFtZV09dHJ1ZTt9aWYoIXRoaXMubnVtYmVyT2ZJbnZhbGlkcygpKXt0aGlzLnRvSGlkZT10aGlzLnRvSGlkZS5hZGQodGhpcy5jb250YWluZXJzKTt9dGhpcy5zaG93RXJyb3JzKCk7cmV0dXJuIHJlc3VsdDt9LHNob3dFcnJvcnM6ZnVuY3Rpb24oZXJyb3JzKXtpZihlcnJvcnMpeyQuZXh0ZW5kKHRoaXMuZXJyb3JNYXAsZXJyb3JzKTt0aGlzLmVycm9yTGlzdD1bXTtmb3IodmFyIG5hbWUgaW4gZXJyb3JzKXt0aGlzLmVycm9yTGlzdC5wdXNoKHttZXNzYWdlOmVycm9yc1tuYW1lXSxlbGVtZW50OnRoaXMuZmluZEJ5TmFtZShuYW1lKVswXX0pO310aGlzLnN1Y2Nlc3NMaXN0PSQuZ3JlcCh0aGlzLnN1Y2Nlc3NMaXN0LGZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiEoZWxlbWVudC5uYW1lIGluIGVycm9ycyk7fSk7fXRoaXMuc2V0dGluZ3Muc2hvd0Vycm9ycz90aGlzLnNldHRpbmdzLnNob3dFcnJvcnMuY2FsbCh0aGlzLHRoaXMuZXJyb3JNYXAsdGhpcy5lcnJvckxpc3QpOnRoaXMuZGVmYXVsdFNob3dFcnJvcnMoKTt9LHJlc2V0Rm9ybTpmdW5jdGlvbigpe2lmKCQuZm4ucmVzZXRGb3JtKSQodGhpcy5jdXJyZW50Rm9ybSkucmVzZXRGb3JtKCk7dGhpcy5zdWJtaXR0ZWQ9e307dGhpcy5wcmVwYXJlRm9ybSgpO3RoaXMuaGlkZUVycm9ycygpO3RoaXMuZWxlbWVudHMoKS5yZW1vdmVDbGFzcyh0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MpO30sbnVtYmVyT2ZJbnZhbGlkczpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9iamVjdExlbmd0aCh0aGlzLmludmFsaWQpO30sb2JqZWN0TGVuZ3RoOmZ1bmN0aW9uKG9iail7dmFyIGNvdW50PTA7Zm9yKHZhciBpIGluIG9iailjb3VudCsrO3JldHVybiBjb3VudDt9LGhpZGVFcnJvcnM6ZnVuY3Rpb24oKXt0aGlzLmFkZFdyYXBwZXIodGhpcy50b0hpZGUpLmhpZGUoKTt9LHZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2l6ZSgpPT0wO30sc2l6ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVycm9yTGlzdC5sZW5ndGg7fSxmb2N1c0ludmFsaWQ6ZnVuY3Rpb24oKXtpZih0aGlzLnNldHRpbmdzLmZvY3VzSW52YWxpZCl7dHJ5eyQodGhpcy5maW5kTGFzdEFjdGl2ZSgpfHx0aGlzLmVycm9yTGlzdC5sZW5ndGgmJnRoaXMuZXJyb3JMaXN0WzBdLmVsZW1lbnR8fFtdKS5maWx0ZXIoIjp2aXNpYmxlIikuZm9jdXMoKTt9Y2F0Y2goZSl7fX19LGZpbmRMYXN0QWN0aXZlOmZ1bmN0aW9uKCl7dmFyIGxhc3RBY3RpdmU9dGhpcy5sYXN0QWN0aXZlO3JldHVybiBsYXN0QWN0aXZlJiYkLmdyZXAodGhpcy5lcnJvckxpc3QsZnVuY3Rpb24obil7cmV0dXJuIG4uZWxlbWVudC5uYW1lPT1sYXN0QWN0aXZlLm5hbWU7fSkubGVuZ3RoPT0xJiZsYXN0QWN0aXZlO30sZWxlbWVudHM6ZnVuY3Rpb24oKXt2YXIgdmFsaWRhdG9yPXRoaXMscnVsZXNDYWNoZT17fTtyZXR1cm4gJChbXSkuYWRkKHRoaXMuY3VycmVudEZvcm0uZWxlbWVudHMpLmZpbHRlcigiOmlucHV0Iikubm90KCI6c3VibWl0LCA6cmVzZXQsIDppbWFnZSwgW2Rpc2FibGVkXSIpLm5vdCh0aGlzLnNldHRpbmdzLmlnbm9yZSkuZmlsdGVyKGZ1bmN0aW9uKCl7IXRoaXMubmFtZSYmdmFsaWRhdG9yLnNldHRpbmdzLmRlYnVnJiZ3aW5kb3cuY29uc29sZSYmY29uc29sZS5lcnJvcigiJW8gaGFzIG5vIG5hbWUgYXNzaWduZWQiLHRoaXMpO2lmKHRoaXMubmFtZSBpbiBydWxlc0NhY2hlfHwhdmFsaWRhdG9yLm9iamVjdExlbmd0aCgkKHRoaXMpLnJ1bGVzKCkpKXJldHVybiBmYWxzZTtydWxlc0NhY2hlW3RoaXMubmFtZV09dHJ1ZTtyZXR1cm4gdHJ1ZTt9KTt9LGNsZWFuOmZ1bmN0aW9uKHNlbGVjdG9yKXtyZXR1cm4gJChzZWxlY3RvcilbMF07fSxlcnJvcnM6ZnVuY3Rpb24oKXtyZXR1cm4gJCh0aGlzLnNldHRpbmdzLmVycm9yRWxlbWVudCsiLiIrdGhpcy5zZXR0aW5ncy5lcnJvckNsYXNzLHRoaXMuZXJyb3JDb250ZXh0KTt9LHJlc2V0OmZ1bmN0aW9uKCl7dGhpcy5zdWNjZXNzTGlzdD1bXTt0aGlzLmVycm9yTGlzdD1bXTt0aGlzLmVycm9yTWFwPXt9O3RoaXMudG9TaG93PSQoW10pO3RoaXMudG9IaWRlPSQoW10pO3RoaXMuZm9ybVN1Ym1pdHRlZD1mYWxzZTt0aGlzLmN1cnJlbnRFbGVtZW50cz0kKFtdKTt9LHByZXBhcmVGb3JtOmZ1bmN0aW9uKCl7dGhpcy5yZXNldCgpO3RoaXMudG9IaWRlPXRoaXMuZXJyb3JzKCkuYWRkKHRoaXMuY29udGFpbmVycyk7fSxwcmVwYXJlRWxlbWVudDpmdW5jdGlvbihlbGVtZW50KXt0aGlzLnJlc2V0KCk7dGhpcy50b0hpZGU9dGhpcy5lcnJvcnNGb3IoZWxlbWVudCk7fSxjaGVjazpmdW5jdGlvbihlbGVtZW50KXtlbGVtZW50PXRoaXMuY2xlYW4oZWxlbWVudCk7aWYodGhpcy5jaGVja2FibGUoZWxlbWVudCkpe2VsZW1lbnQ9dGhpcy5maW5kQnlOYW1lKGVsZW1lbnQubmFtZSlbMF07fXZhciBydWxlcz0kKGVsZW1lbnQpLnJ1bGVzKCk7dmFyIGRlcGVuZGVuY3lNaXNtYXRjaD1mYWxzZTtmb3IobWV0aG9kIGluIHJ1bGVzKXt2YXIgcnVsZT17bWV0aG9kOm1ldGhvZCxwYXJhbWV0ZXJzOnJ1bGVzW21ldGhvZF19O3RyeXt2YXIgcmVzdWx0PSQudmFsaWRhdG9yLm1ldGhvZHNbbWV0aG9kXS5jYWxsKHRoaXMsZWxlbWVudC52YWx1ZSxlbGVtZW50LHJ1bGUucGFyYW1ldGVycyk7aWYocmVzdWx0PT0iZGVwZW5kZW5jeS1taXNtYXRjaCIpe2RlcGVuZGVuY3lNaXNtYXRjaD10cnVlO2NvbnRpbnVlO31kZXBlbmRlbmN5TWlzbWF0Y2g9ZmFsc2U7aWYocmVzdWx0PT0icGVuZGluZyIpe3RoaXMudG9IaWRlPXRoaXMudG9IaWRlLm5vdCh0aGlzLmVycm9yc0ZvcihlbGVtZW50KSk7cmV0dXJuO31pZighcmVzdWx0KXt0aGlzLmZvcm1hdEFuZEFkZChlbGVtZW50LHJ1bGUpO3JldHVybiBmYWxzZTt9fWNhdGNoKGUpe3RoaXMuc2V0dGluZ3MuZGVidWcmJndpbmRvdy5jb25zb2xlJiZjb25zb2xlLmxvZygiZXhjZXB0aW9uIG9jY3VyZWQgd2hlbiBjaGVja2luZyBlbGVtZW50ICIrZWxlbWVudC5pZA0KKyIsIGNoZWNrIHRoZSAnIitydWxlLm1ldGhvZCsiJyBtZXRob2QiKTt0aHJvdyBlO319aWYoZGVwZW5kZW5jeU1pc21hdGNoKXJldHVybjtpZih0aGlzLm9iamVjdExlbmd0aChydWxlcykpdGhpcy5zdWNjZXNzTGlzdC5wdXNoKGVsZW1lbnQpO3JldHVybiB0cnVlO30sY3VzdG9tTWV0YU1lc3NhZ2U6ZnVuY3Rpb24oZWxlbWVudCxtZXRob2Qpe2lmKCEkLm1ldGFkYXRhKXJldHVybjt2YXIgbWV0YT10aGlzLnNldHRpbmdzLm1ldGE/JChlbGVtZW50KS5tZXRhZGF0YSgpW3RoaXMuc2V0dGluZ3MubWV0YV06JChlbGVtZW50KS5tZXRhZGF0YSgpO3JldHVybiBtZXRhJiZtZXRhLm1lc3NhZ2VzJiZtZXRhLm1lc3NhZ2VzW21ldGhvZF07fSxjdXN0b21NZXNzYWdlOmZ1bmN0aW9uKG5hbWUsbWV0aG9kKXt2YXIgbT10aGlzLnNldHRpbmdzLm1lc3NhZ2VzW25hbWVdO3JldHVybiBtJiYobS5jb25zdHJ1Y3Rvcj09U3RyaW5nP206bVttZXRob2RdKTt9LGZpbmREZWZpbmVkOmZ1bmN0aW9uKCl7Zm9yKHZhciBpPTA7aTxhcmd1bWVudHMubGVuZ3RoO2krKyl7aWYoYXJndW1lbnRzW2ldIT09dW5kZWZpbmVkKXJldHVybiBhcmd1bWVudHNbaV07fXJldHVybiB1bmRlZmluZWQ7fSxkZWZhdWx0TWVzc2FnZTpmdW5jdGlvbihlbGVtZW50LG1ldGhvZCl7cmV0dXJuIHRoaXMuZmluZERlZmluZWQodGhpcy5jdXN0b21NZXNzYWdlKGVsZW1lbnQubmFtZSxtZXRob2QpLHRoaXMuY3VzdG9tTWV0YU1lc3NhZ2UoZWxlbWVudCxtZXRob2QpLCF0aGlzLnNldHRpbmdzLmlnbm9yZVRpdGxlJiZlbGVtZW50LnRpdGxlfHx1bmRlZmluZWQsJC52YWxpZGF0b3IubWVzc2FnZXNbbWV0aG9kXSwiPHN0cm9uZz5XYXJuaW5nOiBObyBtZXNzYWdlIGRlZmluZWQgZm9yICIrZWxlbWVudC5uYW1lKyI8L3N0cm9uZz4iKTt9LGZvcm1hdEFuZEFkZDpmdW5jdGlvbihlbGVtZW50LHJ1bGUpe3ZhciBtZXNzYWdlPXRoaXMuZGVmYXVsdE1lc3NhZ2UoZWxlbWVudCxydWxlLm1ldGhvZCk7aWYodHlwZW9mIG1lc3NhZ2U9PSJmdW5jdGlvbiIpbWVzc2FnZT1tZXNzYWdlLmNhbGwodGhpcyxydWxlLnBhcmFtZXRlcnMsZWxlbWVudCk7dGhpcy5lcnJvckxpc3QucHVzaCh7bWVzc2FnZTptZXNzYWdlLGVsZW1lbnQ6ZWxlbWVudH0pO3RoaXMuZXJyb3JNYXBbZWxlbWVudC5uYW1lXT1tZXNzYWdlO3RoaXMuc3VibWl0dGVkW2VsZW1lbnQubmFtZV09bWVzc2FnZTt9LGFkZFdyYXBwZXI6ZnVuY3Rpb24odG9Ub2dnbGUpe2lmKHRoaXMuc2V0dGluZ3Mud3JhcHBlcil0b1RvZ2dsZT10b1RvZ2dsZS5hZGQodG9Ub2dnbGUucGFyZW50cyh0aGlzLnNldHRpbmdzLndyYXBwZXIpKTtyZXR1cm4gdG9Ub2dnbGU7fSxkZWZhdWx0U2hvd0Vycm9yczpmdW5jdGlvbigpe2Zvcih2YXIgaT0wO3RoaXMuZXJyb3JMaXN0W2ldO2krKyl7dmFyIGVycm9yPXRoaXMuZXJyb3JMaXN0W2ldO3RoaXMuc2V0dGluZ3MuaGlnaGxpZ2h0JiZ0aGlzLnNldHRpbmdzLmhpZ2hsaWdodC5jYWxsKHRoaXMsZXJyb3IuZWxlbWVudCx0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MpO3RoaXMuc2hvd0xhYmVsKGVycm9yLmVsZW1lbnQsZXJyb3IubWVzc2FnZSk7fWlmKHRoaXMuZXJyb3JMaXN0Lmxlbmd0aCl7dGhpcy50b1Nob3c9dGhpcy50b1Nob3cuYWRkKHRoaXMuY29udGFpbmVycyk7fWlmKHRoaXMuc2V0dGluZ3Muc3VjY2Vzcyl7Zm9yKHZhciBpPTA7dGhpcy5zdWNjZXNzTGlzdFtpXTtpKyspe3RoaXMuc2hvd0xhYmVsKHRoaXMuc3VjY2Vzc0xpc3RbaV0pO319aWYodGhpcy5zZXR0aW5ncy51bmhpZ2hsaWdodCl7Zm9yKHZhciBpPTAsZWxlbWVudHM9dGhpcy52YWxpZEVsZW1lbnRzKCk7ZWxlbWVudHNbaV07aSsrKXt0aGlzLnNldHRpbmdzLnVuaGlnaGxpZ2h0LmNhbGwodGhpcyxlbGVtZW50c1tpXSx0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MpO319dGhpcy50b0hpZGU9dGhpcy50b0hpZGUubm90KHRoaXMudG9TaG93KTt0aGlzLmhpZGVFcnJvcnMoKTt0aGlzLmFkZFdyYXBwZXIodGhpcy50b1Nob3cpLnNob3coKTt9LHZhbGlkRWxlbWVudHM6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50RWxlbWVudHMubm90KHRoaXMuaW52YWxpZEVsZW1lbnRzKCkpO30saW52YWxpZEVsZW1lbnRzOmZ1bmN0aW9uKCl7cmV0dXJuICQodGhpcy5lcnJvckxpc3QpLm1hcChmdW5jdGlvbigpe3JldHVybiB0aGlzLmVsZW1lbnQ7fSk7fSxzaG93TGFiZWw6ZnVuY3Rpb24oZWxlbWVudCxtZXNzYWdlKXt2YXIgbGFiZWw9dGhpcy5lcnJvcnNGb3IoZWxlbWVudCk7aWYobGFiZWwubGVuZ3RoKXtsYWJlbC5yZW1vdmVDbGFzcygpLmFkZENsYXNzKHRoaXMuc2V0dGluZ3MuZXJyb3JDbGFzcyk7bGFiZWwuYXR0cigiZ2VuZXJhdGVkIikmJmxhYmVsLmh0bWwobWVzc2FnZSk7fWVsc2V7bGFiZWw9JCgiPCIrdGhpcy5zZXR0aW5ncy5lcnJvckVsZW1lbnQrIi8+IikuYXR0cih7ImZvciI6dGhpcy5pZE9yTmFtZShlbGVtZW50KSxnZW5lcmF0ZWQ6dHJ1ZX0pLmFkZENsYXNzKHRoaXMuc2V0dGluZ3MuZXJyb3JDbGFzcykuaHRtbChtZXNzYWdlfHwiIik7aWYodGhpcy5zZXR0aW5ncy53cmFwcGVyKXtsYWJlbD1sYWJlbC5oaWRlKCkuc2hvdygpLndyYXAoIjwiK3RoaXMuc2V0dGluZ3Mud3JhcHBlcisiLz4iKS5wYXJlbnQoKTt9aWYoIXRoaXMubGFiZWxDb250YWluZXIuYXBwZW5kKGxhYmVsKS5sZW5ndGgpdGhpcy5zZXR0aW5ncy5lcnJvclBsYWNlbWVudD90aGlzLnNldHRpbmdzLmVycm9yUGxhY2VtZW50KGxhYmVsLCQoZWxlbWVudCkpOmxhYmVsLmluc2VydEFmdGVyKGVsZW1lbnQpO31pZighbWVzc2FnZSYmdGhpcy5zZXR0aW5ncy5zdWNjZXNzKXtsYWJlbC50ZXh0KCIiKTt0eXBlb2YgdGhpcy5zZXR0aW5ncy5zdWNjZXNzPT0ic3RyaW5nIj9sYWJlbC5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLnN1Y2Nlc3MpOnRoaXMuc2V0dGluZ3Muc3VjY2VzcyhsYWJlbCk7fXRoaXMudG9TaG93PXRoaXMudG9TaG93LmFkZChsYWJlbCk7fSxlcnJvcnNGb3I6ZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJuIHRoaXMuZXJyb3JzKCkuZmlsdGVyKCJbZm9yPSciK3RoaXMuaWRPck5hbWUoZWxlbWVudCkrIiddIik7fSxpZE9yTmFtZTpmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4gdGhpcy5ncm91cHNbZWxlbWVudC5uYW1lXXx8KHRoaXMuY2hlY2thYmxlKGVsZW1lbnQpP2VsZW1lbnQubmFtZTplbGVtZW50LmlkfHxlbGVtZW50Lm5hbWUpO30sY2hlY2thYmxlOmZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybi9yYWRpb3xjaGVja2JveC9pLnRlc3QoZWxlbWVudC50eXBlKTt9LGZpbmRCeU5hbWU6ZnVuY3Rpb24obmFtZSl7dmFyIGZvcm09dGhpcy5jdXJyZW50Rm9ybTtyZXR1cm4gJChkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShuYW1lKSkubWFwKGZ1bmN0aW9uKGluZGV4LGVsZW1lbnQpe3JldHVybiBlbGVtZW50LmZvcm09PWZvcm0mJmVsZW1lbnQubmFtZT09bmFtZSYmZWxlbWVudHx8bnVsbDt9KTt9LGdldExlbmd0aDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50KXtzd2l0Y2goZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXtjYXNlJ3NlbGVjdCc6cmV0dXJuICQoIm9wdGlvbjpzZWxlY3RlZCIsZWxlbWVudCkubGVuZ3RoO2Nhc2UnaW5wdXQnOmlmKHRoaXMuY2hlY2thYmxlKGVsZW1lbnQpKXJldHVybiB0aGlzLmZpbmRCeU5hbWUoZWxlbWVudC5uYW1lKS5maWx0ZXIoJzpjaGVja2VkJykubGVuZ3RoO31yZXR1cm4gdmFsdWUubGVuZ3RoO30sZGVwZW5kOmZ1bmN0aW9uKHBhcmFtLGVsZW1lbnQpe3JldHVybiB0aGlzLmRlcGVuZFR5cGVzW3R5cGVvZiBwYXJhbV0/dGhpcy5kZXBlbmRUeXBlc1t0eXBlb2YgcGFyYW1dKHBhcmFtLGVsZW1lbnQpOnRydWU7fSxkZXBlbmRUeXBlczp7ImJvb2xlYW4iOmZ1bmN0aW9uKHBhcmFtLGVsZW1lbnQpe3JldHVybiBwYXJhbTt9LCJzdHJpbmciOmZ1bmN0aW9uKHBhcmFtLGVsZW1lbnQpe3JldHVybiEhJChwYXJhbSxlbGVtZW50LmZvcm0pLmxlbmd0aDt9LCJmdW5jdGlvbiI6ZnVuY3Rpb24ocGFyYW0sZWxlbWVudCl7cmV0dXJuIHBhcmFtKGVsZW1lbnQpO319LG9wdGlvbmFsOmZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiEkLnZhbGlkYXRvci5tZXRob2RzLnJlcXVpcmVkLmNhbGwodGhpcywkLnRyaW0oZWxlbWVudC52YWx1ZSksZWxlbWVudCkmJiJkZXBlbmRlbmN5LW1pc21hdGNoIjt9LHN0YXJ0UmVxdWVzdDpmdW5jdGlvbihlbGVtZW50KXtpZighdGhpcy5wZW5kaW5nW2VsZW1lbnQubmFtZV0pe3RoaXMucGVuZGluZ1JlcXVlc3QrKzt0aGlzLnBlbmRpbmdbZWxlbWVudC5uYW1lXT10cnVlO319LHN0b3BSZXF1ZXN0OmZ1bmN0aW9uKGVsZW1lbnQsdmFsaWQpe3RoaXMucGVuZGluZ1JlcXVlc3QtLTtpZih0aGlzLnBlbmRpbmdSZXF1ZXN0PDApdGhpcy5wZW5kaW5nUmVxdWVzdD0wO2RlbGV0ZSB0aGlzLnBlbmRpbmdbZWxlbWVudC5uYW1lXTtpZih2YWxpZCYmdGhpcy5wZW5kaW5nUmVxdWVzdD09MCYmdGhpcy5mb3JtU3VibWl0dGVkJiZ0aGlzLmZvcm0oKSl7JCh0aGlzLmN1cnJlbnRGb3JtKS5zdWJtaXQoKTt9ZWxzZSBpZighdmFsaWQmJnRoaXMucGVuZGluZ1JlcXVlc3Q9PTAmJnRoaXMuZm9ybVN1Ym1pdHRlZCl7JCh0aGlzLmN1cnJlbnRGb3JtKS50cmlnZ2VySGFuZGxlcigiaW52YWxpZC1mb3JtIixbdGhpc10pO319LHByZXZpb3VzVmFsdWU6ZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJuICQuZGF0YShlbGVtZW50LCJwcmV2aW91c1ZhbHVlIil8fCQuZGF0YShlbGVtZW50LCJwcmV2aW91c1ZhbHVlIixwcmV2aW91cz17b2xkOm51bGwsdmFsaWQ6dHJ1ZSxtZXNzYWdlOnRoaXMuZGVmYXVsdE1lc3NhZ2UoZWxlbWVudCwicmVtb3RlIil9KTt9fSxjbGFzc1J1bGVTZXR0aW5nczp7cmVxdWlyZWQ6e3JlcXVpcmVkOnRydWV9LGVtYWlsOntlbWFpbDp0cnVlfSx1cmw6e3VybDp0cnVlfSxkYXRlOntkYXRlOnRydWV9LGRhdGVJU086e2RhdGVJU086dHJ1ZX0sZGF0ZURFOntkYXRlREU6dHJ1ZX0sbnVtYmVyOntudW1iZXI6dHJ1ZX0sbnVtYmVyREU6e251bWJlckRFOnRydWV9LGRpZ2l0czp7ZGlnaXRzOnRydWV9LGNyZWRpdGNhcmQ6e2NyZWRpdGNhcmQ6dHJ1ZX19LGFkZENsYXNzUnVsZXM6ZnVuY3Rpb24oY2xhc3NOYW1lLHJ1bGVzKXtjbGFzc05hbWUuY29uc3RydWN0b3I9PVN0cmluZz90aGlzLmNsYXNzUnVsZVNldHRpbmdzW2NsYXNzTmFtZV09cnVsZXM6JC5leHRlbmQodGhpcy5jbGFzc1J1bGVTZXR0aW5ncyxjbGFzc05hbWUpO30sY2xhc3NSdWxlczpmdW5jdGlvbihlbGVtZW50KXt2YXIgcnVsZXM9e307dmFyIGNsYXNzZXM9JChlbGVtZW50KS5hdHRyKCdjbGFzcycpO2NsYXNzZXMmJiQuZWFjaChjbGFzc2VzLnNwbGl0KCcgJyksZnVuY3Rpb24oKXtpZih0aGlzIGluICQudmFsaWRhdG9yLmNsYXNzUnVsZVNldHRpbmdzKXskLmV4dGVuZChydWxlcywkLnZhbGlkYXRvci5jbGFzc1J1bGVTZXR0aW5nc1t0aGlzXSk7fX0pO3JldHVybiBydWxlczt9LGF0dHJpYnV0ZVJ1bGVzOmZ1bmN0aW9uKGVsZW1lbnQpe3ZhciBydWxlcz17fTt2YXIgJGVsZW1lbnQ9JChlbGVtZW50KTtmb3IobWV0aG9kIGluICQudmFsaWRhdG9yLm1ldGhvZHMpe3ZhciB2YWx1ZT0kZWxlbWVudC5hdHRyKG1ldGhvZCk7aWYodmFsdWUpe3J1bGVzW21ldGhvZF09dmFsdWU7fX1pZihydWxlcy5tYXhsZW5ndGgmJi8tMXwyMTQ3NDgzNjQ3fDUyNDI4OC8udGVzdChydWxlcy5tYXhsZW5ndGgpKXtkZWxldGUgcnVsZXMubWF4bGVuZ3RoO31yZXR1cm4gcnVsZXM7fSxtZXRhZGF0YVJ1bGVzOmZ1bmN0aW9uKGVsZW1lbnQpe2lmKCEkLm1ldGFkYXRhKXJldHVybnt9O3ZhciBtZXRhPSQuZGF0YShlbGVtZW50LmZvcm0sJ3ZhbGlkYXRvcicpLnNldHRpbmdzLm1ldGE7cmV0dXJuIG1ldGE/JChlbGVtZW50KS5tZXRhZGF0YSgpW21ldGFdOiQoZWxlbWVudCkubWV0YWRhdGEoKTt9LHN0YXRpY1J1bGVzOmZ1bmN0aW9uKGVsZW1lbnQpe3ZhciBydWxlcz17fTt2YXIgdmFsaWRhdG9yPSQuZGF0YShlbGVtZW50LmZvcm0sJ3ZhbGlkYXRvcicpO2lmKHZhbGlkYXRvci5zZXR0aW5ncy5ydWxlcyl7cnVsZXM9JC52YWxpZGF0b3Iubm9ybWFsaXplUnVsZSh2YWxpZGF0b3Iuc2V0dGluZ3MucnVsZXNbZWxlbWVudC5uYW1lXSl8fHt9O31yZXR1cm4gcnVsZXM7fSxub3JtYWxpemVSdWxlczpmdW5jdGlvbihydWxlcyxlbGVtZW50KXskLmVhY2gocnVsZXMsZnVuY3Rpb24ocHJvcCx2YWwpe2lmKHZhbD09PWZhbHNlKXtkZWxldGUgcnVsZXNbcHJvcF07cmV0dXJuO31pZih2YWwucGFyYW18fHZhbC5kZXBlbmRzKXt2YXIga2VlcFJ1bGU9dHJ1ZTtzd2l0Y2godHlwZW9mIHZhbC5kZXBlbmRzKXtjYXNlInN0cmluZyI6a2VlcFJ1bGU9ISEkKHZhbC5kZXBlbmRzLGVsZW1lbnQuZm9ybSkubGVuZ3RoO2JyZWFrO2Nhc2UiZnVuY3Rpb24iOmtlZXBSdWxlPXZhbC5kZXBlbmRzLmNhbGwoZWxlbWVudCxlbGVtZW50KTticmVhazt9aWYoa2VlcFJ1bGUpe3J1bGVzW3Byb3BdPXZhbC5wYXJhbSE9PXVuZGVmaW5lZD92YWwucGFyYW06dHJ1ZTt9ZWxzZXtkZWxldGUgcnVsZXNbcHJvcF07fX19KTskLmVhY2gocnVsZXMsZnVuY3Rpb24ocnVsZSxwYXJhbWV0ZXIpe3J1bGVzW3J1bGVdPSQuaXNGdW5jdGlvbihwYXJhbWV0ZXIpP3BhcmFtZXRlcihlbGVtZW50KTpwYXJhbWV0ZXI7fSk7JC5lYWNoKFsnbWlubGVuZ3RoJywnbWF4bGVuZ3RoJywnbWluJywnbWF4J10sZnVuY3Rpb24oKXtpZihydWxlc1t0aGlzXSl7cnVsZXNbdGhpc109TnVtYmVyKHJ1bGVzW3RoaXNdKTt9fSk7JC5lYWNoKFsncmFuZ2VsZW5ndGgnLCdyYW5nZSddLGZ1bmN0aW9uKCl7aWYocnVsZXNbdGhpc10pe3J1bGVzW3RoaXNdPVtOdW1iZXIocnVsZXNbdGhpc11bMF0pLE51bWJlcihydWxlc1t0aGlzXVsxXSldO319KTtpZigkLnZhbGlkYXRvci5hdXRvQ3JlYXRlUmFuZ2VzKXtpZihydWxlcy5taW4mJnJ1bGVzLm1heCl7cnVsZXMucmFuZ2U9W3J1bGVzLm1pbixydWxlcy5tYXhdO2RlbGV0ZSBydWxlcy5taW47ZGVsZXRlIHJ1bGVzLm1heDt9aWYocnVsZXMubWlubGVuZ3RoJiZydWxlcy5tYXhsZW5ndGgpe3J1bGVzLnJhbmdlbGVuZ3RoPVtydWxlcy5taW5sZW5ndGgscnVsZXMubWF4bGVuZ3RoXTtkZWxldGUgcnVsZXMubWlubGVuZ3RoO2RlbGV0ZSBydWxlcy5tYXhsZW5ndGg7fX1pZihydWxlcy5tZXNzYWdlcyl7ZGVsZXRlIHJ1bGVzLm1lc3NhZ2VzfXJldHVybiBydWxlczt9LG5vcm1hbGl6ZVJ1bGU6ZnVuY3Rpb24oZGF0YSl7aWYodHlwZW9mIGRhdGE9PSJzdHJpbmciKXt2YXIgdHJhbnNmb3JtZWQ9e307JC5lYWNoKGRhdGEuc3BsaXQoL1xzLyksZnVuY3Rpb24oKXt0cmFuc2Zvcm1lZFt0aGlzXT10cnVlO30pO2RhdGE9dHJhbnNmb3JtZWQ7fXJldHVybiBkYXRhO30sYWRkTWV0aG9kOmZ1bmN0aW9uKG5hbWUsbWV0aG9kLG1lc3NhZ2UpeyQudmFsaWRhdG9yLm1ldGhvZHNbbmFtZV09bWV0aG9kOyQudmFsaWRhdG9yLm1lc3NhZ2VzW25hbWVdPW1lc3NhZ2U7aWYobWV0aG9kLmxlbmd0aDwzKXskLnZhbGlkYXRvci5hZGRDbGFzc1J1bGVzKG5hbWUsJC52YWxpZGF0b3Iubm9ybWFsaXplUnVsZShuYW1lKSk7fX0sbWV0aG9kczp7cmVxdWlyZWQ6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7aWYoIXRoaXMuZGVwZW5kKHBhcmFtLGVsZW1lbnQpKXJldHVybiJkZXBlbmRlbmN5LW1pc21hdGNoIjtzd2l0Y2goZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXtjYXNlJ3NlbGVjdCc6dmFyIG9wdGlvbnM9JCgib3B0aW9uOnNlbGVjdGVkIixlbGVtZW50KTtyZXR1cm4gb3B0aW9ucy5sZW5ndGg+MCYmKGVsZW1lbnQudHlwZT09InNlbGVjdC1tdWx0aXBsZSJ8fCgkLmJyb3dzZXIubXNpZSYmIShvcHRpb25zWzBdLmF0dHJpYnV0ZXNbJ3ZhbHVlJ10uc3BlY2lmaWVkKT9vcHRpb25zWzBdLnRleHQ6b3B0aW9uc1swXS52YWx1ZSkubGVuZ3RoPjApO2Nhc2UnaW5wdXQnOmlmKHRoaXMuY2hlY2thYmxlKGVsZW1lbnQpKXJldHVybiB0aGlzLmdldExlbmd0aCh2YWx1ZSxlbGVtZW50KT4wO2RlZmF1bHQ6cmV0dXJuICQudHJpbSh2YWx1ZSkubGVuZ3RoPjA7fX0scmVtb3RlOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQscGFyYW0pe2lmKHRoaXMub3B0aW9uYWwoZWxlbWVudCkpcmV0dXJuImRlcGVuZGVuY3ktbWlzbWF0Y2giO3ZhciBwcmV2aW91cz10aGlzLnByZXZpb3VzVmFsdWUoZWxlbWVudCk7aWYoIXRoaXMuc2V0dGluZ3MubWVzc2FnZXNbZWxlbWVudC5uYW1lXSl0aGlzLnNldHRpbmdzLm1lc3NhZ2VzW2VsZW1lbnQubmFtZV09e307dGhpcy5zZXR0aW5ncy5tZXNzYWdlc1tlbGVtZW50Lm5hbWVdLnJlbW90ZT10eXBlb2YgcHJldmlvdXMubWVzc2FnZT09ImZ1bmN0aW9uIj9wcmV2aW91cy5tZXNzYWdlKHZhbHVlKTpwcmV2aW91cy5tZXNzYWdlO3BhcmFtPXR5cGVvZiBwYXJhbT09InN0cmluZyImJnt1cmw6cGFyYW19fHxwYXJhbTtpZihwcmV2aW91cy5vbGQhPT12YWx1ZSl7cHJldmlvdXMub2xkPXZhbHVlO3ZhciB2YWxpZGF0b3I9dGhpczt0aGlzLnN0YXJ0UmVxdWVzdChlbGVtZW50KTt2YXIgZGF0YT17fTtkYXRhW2VsZW1lbnQubmFtZV09dmFsdWU7JC5hamF4KCQuZXh0ZW5kKHRydWUse3VybDpwYXJhbSxtb2RlOiJhYm9ydCIscG9ydDoidmFsaWRhdGUiK2VsZW1lbnQubmFtZSxkYXRhVHlwZToianNvbiIsZGF0YTpkYXRhLHN1Y2Nlc3M6ZnVuY3Rpb24ocmVzcG9uc2Upe2lmKHJlc3BvbnNlKXt2YXIgc3VibWl0dGVkPXZhbGlkYXRvci5mb3JtU3VibWl0dGVkO3ZhbGlkYXRvci5wcmVwYXJlRWxlbWVudChlbGVtZW50KTt2YWxpZGF0b3IuZm9ybVN1Ym1pdHRlZD1zdWJtaXR0ZWQ7dmFsaWRhdG9yLnN1Y2Nlc3NMaXN0LnB1c2goZWxlbWVudCk7dmFsaWRhdG9yLnNob3dFcnJvcnMoKTt9ZWxzZXt2YXIgZXJyb3JzPXt9O2Vycm9yc1tlbGVtZW50Lm5hbWVdPXJlc3BvbnNlfHx2YWxpZGF0b3IuZGVmYXVsdE1lc3NhZ2UoZWxlbWVudCwicmVtb3RlIik7dmFsaWRhdG9yLnNob3dFcnJvcnMoZXJyb3JzKTt9cHJldmlvdXMudmFsaWQ9cmVzcG9uc2U7dmFsaWRhdG9yLnN0b3BSZXF1ZXN0KGVsZW1lbnQscmVzcG9uc2UpO319LHBhcmFtKSk7cmV0dXJuInBlbmRpbmciO31lbHNlIGlmKHRoaXMucGVuZGluZ1tlbGVtZW50Lm5hbWVdKXtyZXR1cm4icGVuZGluZyI7fXJldHVybiBwcmV2aW91cy52YWxpZDt9LG1pbmxlbmd0aDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50LHBhcmFtKXtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8dGhpcy5nZXRMZW5ndGgoJC50cmltKHZhbHVlKSxlbGVtZW50KT49cGFyYW07fSxtYXhsZW5ndGg6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fHRoaXMuZ2V0TGVuZ3RoKCQudHJpbSh2YWx1ZSksZWxlbWVudCk8PXBhcmFtO30scmFuZ2VsZW5ndGg6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7dmFyIGxlbmd0aD10aGlzLmdldExlbmd0aCgkLnRyaW0odmFsdWUpLGVsZW1lbnQpO3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwobGVuZ3RoPj1wYXJhbVswXSYmbGVuZ3RoPD1wYXJhbVsxXSk7fSxtaW46ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fHZhbHVlPj1wYXJhbTt9LG1heDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50LHBhcmFtKXtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8dmFsdWU8PXBhcmFtO30scmFuZ2U6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fCh2YWx1ZT49cGFyYW1bMF0mJnZhbHVlPD1wYXJhbVsxXSk7fSxlbWFpbDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50KXtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8L14oKChbYS16XXxcZHxbISNcJCUmJ1wqXCtcLVwvPVw/XF5fYHtcfH1+XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkrKFwuKFthLXpdfFxkfFshI1wkJSYnXCpcK1wtXC89XD9cXl9ge1x8fX5dfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSspKil8KChceDIyKSgoKChceDIwfFx4MDkpKihceDBkXHgwYSkpPyhceDIwfFx4MDkpKyk/KChbXHgwMS1ceDA4XHgwYlx4MGNceDBlLVx4MWZceDdmXXxceDIxfFtceDIzLVx4NWJdfFtceDVkLVx4N2VdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoXFwoW1x4MDEtXHgwOVx4MGJceDBjXHgwZC1ceDdmXXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKSkqKCgoXHgyMHxceDA5KSooXHgwZFx4MGEpKT8oXHgyMHxceDA5KSspPyhceDIyKSkpQCgoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4pKygoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLj8kL2kudGVzdCh2YWx1ZSk7fSx1cmw6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fC9eKGh0dHBzP3xmdHApOlwvXC8oKCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDopKkApPygoKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKVwuKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSkpfCgoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFxkfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4pKygoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLj8pKDpcZCopPykoXC8oKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKSsoXC8oKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApKikqKT8pPyhcPygoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApfFtcdUUwMDAtXHVGOEZGXXxcL3xcPykqKT8oXCMoKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKXxcL3xcPykqKT8kL2kudGVzdCh2YWx1ZSk7fSxkYXRlOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwhL0ludmFsaWR8TmFOLy50ZXN0KG5ldyBEYXRlKHZhbHVlKSk7fSxkYXRlSVNPOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwvXlxkezR9W1wvLV1cZHsxLDJ9W1wvLV1cZHsxLDJ9JC8udGVzdCh2YWx1ZSk7fSxkYXRlREU6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fC9eXGRcZD9cLlxkXGQ/XC5cZFxkXGQ/XGQ/JC8udGVzdCh2YWx1ZSk7fSxudW1iZXI6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fC9eLT8oPzpcZCt8XGR7MSwzfSg/OixcZHszfSkrKSg/OlwuXGQrKT8kLy50ZXN0KHZhbHVlKTt9LG51bWJlckRFOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwvXi0/KD86XGQrfFxkezEsM30oPzpcLlxkezN9KSspKD86LFxkKyk/JC8udGVzdCh2YWx1ZSk7fSxkaWdpdHM6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fC9eXGQrJC8udGVzdCh2YWx1ZSk7fSxjcmVkaXRjYXJkOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe2lmKHRoaXMub3B0aW9uYWwoZWxlbWVudCkpcmV0dXJuImRlcGVuZGVuY3ktbWlzbWF0Y2giO2lmKC9bXjAtOS1dKy8udGVzdCh2YWx1ZSkpcmV0dXJuIGZhbHNlO3ZhciBuQ2hlY2s9MCxuRGlnaXQ9MCxiRXZlbj1mYWxzZTt2YWx1ZT12YWx1ZS5yZXBsYWNlKC9cRC9nLCIiKTtmb3Iobj12YWx1ZS5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGNEaWdpdD12YWx1ZS5jaGFyQXQobik7dmFyIG5EaWdpdD1wYXJzZUludChjRGlnaXQsMTApO2lmKGJFdmVuKXtpZigobkRpZ2l0Kj0yKT45KW5EaWdpdC09OTt9bkNoZWNrKz1uRGlnaXQ7YkV2ZW49IWJFdmVuO31yZXR1cm4obkNoZWNrJTEwKT09MDt9LGFjY2VwdDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50LHBhcmFtKXtwYXJhbT10eXBlb2YgcGFyYW09PSJzdHJpbmciP3BhcmFtOiJwbmd8anBlP2d8Z2lmIjtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8dmFsdWUubWF0Y2gobmV3IFJlZ0V4cCgiLigiK3BhcmFtKyIpJCIsImkiKSk7fSxlcXVhbFRvOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQscGFyYW0pe3JldHVybiB2YWx1ZT09JChwYXJhbSkudmFsKCk7fX19KTt9KShqUXVlcnkpOzsoZnVuY3Rpb24oJCl7dmFyIGFqYXg9JC5hamF4O3ZhciBwZW5kaW5nUmVxdWVzdHM9e307JC5hamF4PWZ1bmN0aW9uKHNldHRpbmdzKXtzZXR0aW5ncz0kLmV4dGVuZChzZXR0aW5ncywkLmV4dGVuZCh7fSwkLmFqYXhTZXR0aW5ncyxzZXR0aW5ncykpO3ZhciBwb3J0PXNldHRpbmdzLnBvcnQ7aWYoc2V0dGluZ3MubW9kZT09ImFib3J0Iil7aWYocGVuZGluZ1JlcXVlc3RzW3BvcnRdKXtwZW5kaW5nUmVxdWVzdHNbcG9ydF0uYWJvcnQoKTt9cmV0dXJuKHBlbmRpbmdSZXF1ZXN0c1twb3J0XT1hamF4LmFwcGx5KHRoaXMsYXJndW1lbnRzKSk7fXJldHVybiBhamF4LmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9O30pKGpRdWVyeSk7OyhmdW5jdGlvbigkKXskLmVhY2goe2ZvY3VzOidmb2N1c2luJyxibHVyOidmb2N1c291dCd9LGZ1bmN0aW9uKG9yaWdpbmFsLGZpeCl7JC5ldmVudC5zcGVjaWFsW2ZpeF09e3NldHVwOmZ1bmN0aW9uKCl7aWYoJC5icm93c2VyLm1zaWUpcmV0dXJuIGZhbHNlO3RoaXMuYWRkRXZlbnRMaXN0ZW5lcihvcmlnaW5hbCwkLmV2ZW50LnNwZWNpYWxbZml4XS5oYW5kbGVyLHRydWUpO30sdGVhcmRvd246ZnVuY3Rpb24oKXtpZigkLmJyb3dzZXIubXNpZSlyZXR1cm4gZmFsc2U7dGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKG9yaWdpbmFsLCQuZXZlbnQuc3BlY2lhbFtmaXhdLmhhbmRsZXIsdHJ1ZSk7fSxoYW5kbGVyOmZ1bmN0aW9uKGUpe2FyZ3VtZW50c1swXT0kLmV2ZW50LmZpeChlKTthcmd1bWVudHNbMF0udHlwZT1maXg7cmV0dXJuICQuZXZlbnQuaGFuZGxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt9fTt9KTskLmV4dGVuZCgkLmZuLHtkZWxlZ2F0ZTpmdW5jdGlvbih0eXBlLGRlbGVnYXRlLGhhbmRsZXIpe3JldHVybiB0aGlzLmJpbmQodHlwZSxmdW5jdGlvbihldmVudCl7dmFyIHRhcmdldD0kKGV2ZW50LnRhcmdldCk7aWYodGFyZ2V0LmlzKGRlbGVnYXRlKSl7cmV0dXJuIGhhbmRsZXIuYXBwbHkodGFyZ2V0LGFyZ3VtZW50cyk7fX0pO30sdHJpZ2dlckV2ZW50OmZ1bmN0aW9uKHR5cGUsdGFyZ2V0KXtyZXR1cm4gdGhpcy50cmlnZ2VySGFuZGxlcih0eXBlLFskLmV2ZW50LmZpeCh7dHlwZTp0eXBlLHRhcmdldDp0YXJnZXR9KV0pO319KX0pKGpRdWVyeSk7DQooZnVuY3Rpb24oKXt2YXIgJCQ7JCQ9alF1ZXJ5LmZuLmZsYXNoPWZ1bmN0aW9uKGh0bWxPcHRpb25zLHBsdWdpbk9wdGlvbnMscmVwbGFjZSx1cGRhdGUpe3ZhciBibG9jaz1yZXBsYWNlfHwkJC5yZXBsYWNlO3BsdWdpbk9wdGlvbnM9JCQuY29weSgkJC5wbHVnaW5PcHRpb25zLHBsdWdpbk9wdGlvbnMpO2lmKCEkJC5oYXNGbGFzaChwbHVnaW5PcHRpb25zLnZlcnNpb24pKXtpZihwbHVnaW5PcHRpb25zLmV4cHJlc3NJbnN0YWxsJiYkJC5oYXNGbGFzaCg2LDAsNjUpKXt2YXIgZXhwcmVzc0luc3RhbGxPcHRpb25zPXtmbGFzaHZhcnM6e01NcmVkaXJlY3RVUkw6bG9jYXRpb24sTU1wbGF5ZXJUeXBlOidQbHVnSW4nLE1NZG9jdGl0bGU6alF1ZXJ5KCd0aXRsZScpLnRleHQoKX19O31lbHNlIGlmKHBsdWdpbk9wdGlvbnMudXBkYXRlKXtibG9jaz11cGRhdGV8fCQkLnVwZGF0ZTt9ZWxzZXtyZXR1cm4gdGhpczt9fQ0KaHRtbE9wdGlvbnM9JCQuY29weSgkJC5odG1sT3B0aW9ucyxleHByZXNzSW5zdGFsbE9wdGlvbnMsaHRtbE9wdGlvbnMpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtibG9jay5jYWxsKHRoaXMsJCQuY29weShodG1sT3B0aW9ucykpO30pO307JCQuY29weT1mdW5jdGlvbigpe3ZhciBvcHRpb25zPXt9LGZsYXNodmFycz17fTtmb3IodmFyIGk9MDtpPGFyZ3VtZW50cy5sZW5ndGg7aSsrKXt2YXIgYXJnPWFyZ3VtZW50c1tpXTtpZihhcmc9PXVuZGVmaW5lZCljb250aW51ZTtqUXVlcnkuZXh0ZW5kKG9wdGlvbnMsYXJnKTtpZihhcmcuZmxhc2h2YXJzPT11bmRlZmluZWQpY29udGludWU7alF1ZXJ5LmV4dGVuZChmbGFzaHZhcnMsYXJnLmZsYXNodmFycyk7fQ0Kb3B0aW9ucy5mbGFzaHZhcnM9Zmxhc2h2YXJzO3JldHVybiBvcHRpb25zO307JCQuaGFzRmxhc2g9ZnVuY3Rpb24oKXtpZigvaGFzRmxhc2hcPXRydWUvLnRlc3QobG9jYXRpb24pKXJldHVybiB0cnVlO2lmKC9oYXNGbGFzaFw9ZmFsc2UvLnRlc3QobG9jYXRpb24pKXJldHVybiBmYWxzZTt2YXIgcHY9JCQuaGFzRmxhc2gucGxheWVyVmVyc2lvbigpLm1hdGNoKC9cZCsvZyk7dmFyIHJ2PVN0cmluZyhbYXJndW1lbnRzWzBdLGFyZ3VtZW50c1sxXSxhcmd1bWVudHNbMl1dKS5tYXRjaCgvXGQrL2cpfHxTdHJpbmcoJCQucGx1Z2luT3B0aW9ucy52ZXJzaW9uKS5tYXRjaCgvXGQrL2cpO2Zvcih2YXIgaT0wO2k8MztpKyspe3B2W2ldPXBhcnNlSW50KHB2W2ldfHwwKTtydltpXT1wYXJzZUludChydltpXXx8MCk7aWYocHZbaV08cnZbaV0pcmV0dXJuIGZhbHNlO2lmKHB2W2ldPnJ2W2ldKXJldHVybiB0cnVlO30NCnJldHVybiB0cnVlO307JCQuaGFzRmxhc2gucGxheWVyVmVyc2lvbj1mdW5jdGlvbigpe3RyeXt0cnl7dmFyIGF4bz1uZXcgQWN0aXZlWE9iamVjdCgnU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2guNicpO3RyeXtheG8uQWxsb3dTY3JpcHRBY2Nlc3M9J2Fsd2F5cyc7fQ0KY2F0Y2goZSl7cmV0dXJuJzYsMCwwJzt9fWNhdGNoKGUpe30NCnJldHVybiBuZXcgQWN0aXZlWE9iamVjdCgnU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2gnKS5HZXRWYXJpYWJsZSgnJHZlcnNpb24nKS5yZXBsYWNlKC9cRCsvZywnLCcpLm1hdGNoKC9eLD8oLispLD8kLylbMV07fWNhdGNoKGUpe3RyeXtpZihuYXZpZ2F0b3IubWltZVR5cGVzWyJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCJdLmVuYWJsZWRQbHVnaW4pe3JldHVybihuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIDIuMCJdfHxuYXZpZ2F0b3IucGx1Z2luc1siU2hvY2t3YXZlIEZsYXNoIl0pLmRlc2NyaXB0aW9uLnJlcGxhY2UoL1xEKy9nLCIsIikubWF0Y2goL14sPyguKyksPyQvKVsxXTt9fWNhdGNoKGUpe319DQpyZXR1cm4nMCwwLDAnO307JCQuaHRtbE9wdGlvbnM9e2hlaWdodDoyNDAsZmxhc2h2YXJzOnt9LHBsdWdpbnNwYWdlOidodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9nZXRmbGFzaHBsYXllcicsc3JjOicjJyx0eXBlOidhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCcsd2lkdGg6MzIwfTskJC5wbHVnaW5PcHRpb25zPXtleHByZXNzSW5zdGFsbDpmYWxzZSx1cGRhdGU6dHJ1ZSx2ZXJzaW9uOic2LjAuNjUnfTskJC5yZXBsYWNlPWZ1bmN0aW9uKGh0bWxPcHRpb25zKXt0aGlzLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYWx0Ij4nK3RoaXMuaW5uZXJIVE1MKyc8L2Rpdj4nO2pRdWVyeSh0aGlzKS5hZGRDbGFzcygnZmxhc2gtcmVwbGFjZWQnKS5wcmVwZW5kKCQkLnRyYW5zZm9ybShodG1sT3B0aW9ucykpO307JCQudXBkYXRlPWZ1bmN0aW9uKGh0bWxPcHRpb25zKXt2YXIgdXJsPVN0cmluZyhsb2NhdGlvbikuc3BsaXQoJz8nKTt1cmwuc3BsaWNlKDEsMCwnP2hhc0ZsYXNoPXRydWUmJyk7dXJsPXVybC5qb2luKCcnKTt2YXIgbXNnPSc8cD5UaGlzIGNvbnRlbnQgcmVxdWlyZXMgdGhlIEZsYXNoIFBsYXllci4gPGEgaHJlZj0iaHR0cDovL3d3dy5hZG9iZS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXIiPkRvd25sb2FkIEZsYXNoIFBsYXllcjwvYT4uIEFscmVhZHkgaGF2ZSBGbGFzaCBQbGF5ZXI/IDxhIGhyZWY9IicrdXJsKyciPkNsaWNrIGhlcmUuPC9hPjwvcD4nO3RoaXMuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iYWx0Ij4nK3RoaXMuaW5uZXJIVE1MKyc8L3NwYW4+JztqUXVlcnkodGhpcykuYWRkQ2xhc3MoJ2ZsYXNoLXVwZGF0ZScpLnByZXBlbmQobXNnKTt9O2Z1bmN0aW9uIHRvQXR0cmlidXRlU3RyaW5nKCl7dmFyIHM9Jyc7Zm9yKHZhciBrZXkgaW4gdGhpcykNCmlmKHR5cGVvZiB0aGlzW2tleV0hPSdmdW5jdGlvbicpcys9a2V5Kyc9IicrdGhpc1trZXldKyciICc7cmV0dXJuIHM7fTtmdW5jdGlvbiB0b0ZsYXNodmFyc1N0cmluZygpe3ZhciBzPScnO2Zvcih2YXIga2V5IGluIHRoaXMpDQppZih0eXBlb2YgdGhpc1trZXldIT0nZnVuY3Rpb24nKXMrPWtleSsnPScrZW5jb2RlVVJJQ29tcG9uZW50KHRoaXNba2V5XSkrJyYnO3JldHVybiBzLnJlcGxhY2UoLyYkLywnJyk7fTskJC50cmFuc2Zvcm09ZnVuY3Rpb24oaHRtbE9wdGlvbnMpe2h0bWxPcHRpb25zLnRvU3RyaW5nPXRvQXR0cmlidXRlU3RyaW5nO2lmKGh0bWxPcHRpb25zLmZsYXNodmFycylodG1sT3B0aW9ucy5mbGFzaHZhcnMudG9TdHJpbmc9dG9GbGFzaHZhcnNTdHJpbmc7cmV0dXJuJzxlbWJlZCAnK1N0cmluZyhodG1sT3B0aW9ucykrJy8+Jzt9O2lmKHdpbmRvdy5hdHRhY2hFdmVudCl7d2luZG93LmF0dGFjaEV2ZW50KCJvbmJlZm9yZXVubG9hZCIsZnVuY3Rpb24oKXtfX2ZsYXNoX3VubG9hZEhhbmRsZXI9ZnVuY3Rpb24oKXt9O19fZmxhc2hfc2F2ZWRVbmxvYWRIYW5kbGVyPWZ1bmN0aW9uKCl7fTt9KTt9fSkoKTsoZnVuY3Rpb24oJCl7JC5mbi5saWdodEJveD1mdW5jdGlvbihzZXR0aW5ncyl7c2V0dGluZ3M9alF1ZXJ5LmV4dGVuZCh7b3ZlcmxheUJnQ29sb3I6JyMwMDAnLG92ZXJsYXlPcGFjaXR5OjAuOCxmaXhlZE5hdmlnYXRpb246ZmFsc2UsaW1hZ2VMb2FkaW5nOidTY3JpcHRzL2xpZ2h0Ym94L2ltYWdlcy9saWdodGJveC1pY28tbG9hZGluZy5naWYnLGltYWdlQnRuUHJldjonU2NyaXB0cy9saWdodGJveC9pbWFnZXMvbGlnaHRib3gtYnRuLXByZXYuZ2lmJyxpbWFnZUJ0bk5leHQ6J1NjcmlwdHMvbGlnaHRib3gvaW1hZ2VzL2xpZ2h0Ym94LWJ0bi1uZXh0LmdpZicsaW1hZ2VCdG5DbG9zZTonU2NyaXB0cy9saWdodGJveC9pbWFnZXMvbGlnaHRib3gtYnRuLWNsb3NlLmdpZicsaW1hZ2VCbGFuazonU2NyaXB0cy9saWdodGJveC9pbWFnZXMvbGlnaHRib3gtYmxhbmsuZ2lmJyxjb250YWluZXJCb3JkZXJTaXplOjEwLGNvbnRhaW5lclJlc2l6ZVNwZWVkOjQwMCx0eHRJbWFnZTonSW1hZ2UnLHR4dE9mOidvZicsa2V5VG9DbG9zZTonYycsa2V5VG9QcmV2OidwJyxrZXlUb05leHQ6J24nLGltYWdlQXJyYXk6W10sYWN0aXZlSW1hZ2U6MH0sc2V0dGluZ3MpO3ZhciBqUXVlcnlNYXRjaGVkT2JqPXRoaXM7ZnVuY3Rpb24gX2luaXRpYWxpemUoKXtfc3RhcnQodGhpcyxqUXVlcnlNYXRjaGVkT2JqKTtyZXR1cm4gZmFsc2U7fQ0KZnVuY3Rpb24gX3N0YXJ0KG9iakNsaWNrZWQsalF1ZXJ5TWF0Y2hlZE9iail7JCgnLm1lYXN1cmVkTEFZT1VULCBlbWJlZCwgb2JqZWN0LCBzZWxlY3QnKS5jc3Moeyd2aXNpYmlsaXR5JzonaGlkZGVuJ30pO19zZXRfaW50ZXJmYWNlKCk7c2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGg9MDtzZXR0aW5ncy5hY3RpdmVJbWFnZT0wO2lmKGpRdWVyeU1hdGNoZWRPYmoubGVuZ3RoPT0xKXtzZXR0aW5ncy5pbWFnZUFycmF5LnB1c2gobmV3IEFycmF5KG9iakNsaWNrZWQuZ2V0QXR0cmlidXRlKCdocmVmJyksb2JqQ2xpY2tlZC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpKTt9ZWxzZXtmb3IodmFyIGk9MDtpPGpRdWVyeU1hdGNoZWRPYmoubGVuZ3RoO2krKyl7c2V0dGluZ3MuaW1hZ2VBcnJheS5wdXNoKG5ldyBBcnJheShqUXVlcnlNYXRjaGVkT2JqW2ldLmdldEF0dHJpYnV0ZSgnaHJlZicpLGpRdWVyeU1hdGNoZWRPYmpbaV0uZ2V0QXR0cmlidXRlKCd0aXRsZScpKSk7fX0NCndoaWxlKHNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2VdWzBdIT1vYmpDbGlja2VkLmdldEF0dHJpYnV0ZSgnaHJlZicpKXtzZXR0aW5ncy5hY3RpdmVJbWFnZSsrO30NCl9zZXRfaW1hZ2VfdG9fdmlldygpO30NCmZ1bmN0aW9uIF9zZXRfaW50ZXJmYWNlKCl7JCgnYm9keScpLmFwcGVuZCgnPGRpdiBpZD0ianF1ZXJ5LW92ZXJsYXkiPjwvZGl2PjxkaXYgaWQ9ImpxdWVyeS1saWdodGJveCI+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCI+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlIj48aW1nIGlkPSJsaWdodGJveC1pbWFnZSI+PGRpdiBzdHlsZT0iIiBpZD0ibGlnaHRib3gtbmF2Ij48YSAgaWQ9ImxpZ2h0Ym94LW5hdi1idG5QcmV2Ij48L2E+PGEgIGlkPSJsaWdodGJveC1uYXYtYnRuTmV4dCI+PC9hPjwvZGl2PjxkaXYgaWQ9ImxpZ2h0Ym94LWxvYWRpbmciPjxhICBpZD0ibGlnaHRib3gtbG9hZGluZy1saW5rIj48aW1nIHNyYz0iJytzZXR0aW5ncy5pbWFnZUxvYWRpbmcrJyI+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImxpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1kYXRhLWJveCI+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEiPjxkaXYgaWQ9ImxpZ2h0Ym94LWltYWdlLWRldGFpbHMiPjxzcGFuIGlkPSJsaWdodGJveC1pbWFnZS1kZXRhaWxzLWNhcHRpb24iPjwvc3Bhbj48c3BhbiBpZD0ibGlnaHRib3gtaW1hZ2UtZGV0YWlscy1jdXJyZW50TnVtYmVyIj48L3NwYW4+PC9kaXY+PGRpdiBpZD0ibGlnaHRib3gtc2VjTmF2Ij48YSAgaWQ9ImxpZ2h0Ym94LXNlY05hdi1idG5DbG9zZSI+PGltZyBzcmM9Iicrc2V0dGluZ3MuaW1hZ2VCdG5DbG9zZSsnIj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+Jyk7dmFyIGFyclBhZ2VTaXplcz1fX19nZXRQYWdlU2l6ZSgpOyQoJyNqcXVlcnktb3ZlcmxheScpLmNzcyh7YmFja2dyb3VuZENvbG9yOnNldHRpbmdzLm92ZXJsYXlCZ0NvbG9yLG9wYWNpdHk6c2V0dGluZ3Mub3ZlcmxheU9wYWNpdHksd2lkdGg6YXJyUGFnZVNpemVzWzBdLGhlaWdodDphcnJQYWdlU2l6ZXNbMV19KS5mYWRlSW4oKTt2YXIgYXJyUGFnZVNjcm9sbD1fX19nZXRQYWdlU2Nyb2xsKCk7JCgnI2pxdWVyeS1saWdodGJveCcpLmNzcyh7dG9wOmFyclBhZ2VTY3JvbGxbMV0rKGFyclBhZ2VTaXplc1szXS8xMCksbGVmdDphcnJQYWdlU2Nyb2xsWzBdfSkuc2hvdygpOyQoJyNqcXVlcnktb3ZlcmxheSwjanF1ZXJ5LWxpZ2h0Ym94JykuY2xpY2soZnVuY3Rpb24oKXtfZmluaXNoKCk7fSk7JCgnI2xpZ2h0Ym94LWxvYWRpbmctbGluaywjbGlnaHRib3gtc2VjTmF2LWJ0bkNsb3NlJykuY2xpY2soZnVuY3Rpb24oKXtfZmluaXNoKCk7cmV0dXJuIGZhbHNlO30pOyQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKXt2YXIgYXJyUGFnZVNpemVzPV9fX2dldFBhZ2VTaXplKCk7JCgnI2pxdWVyeS1vdmVybGF5JykuY3NzKHt3aWR0aDphcnJQYWdlU2l6ZXNbMF0saGVpZ2h0OmFyclBhZ2VTaXplc1sxXX0pO3ZhciBhcnJQYWdlU2Nyb2xsPV9fX2dldFBhZ2VTY3JvbGwoKTskKCcjanF1ZXJ5LWxpZ2h0Ym94JykuY3NzKHt0b3A6YXJyUGFnZVNjcm9sbFsxXSsoYXJyUGFnZVNpemVzWzNdLzEwKSxsZWZ0OmFyclBhZ2VTY3JvbGxbMF19KTt9KTt9DQpmdW5jdGlvbiBfc2V0X2ltYWdlX3RvX3ZpZXcoKXskKCcjbGlnaHRib3gtbG9hZGluZycpLnNob3coKTtpZihzZXR0aW5ncy5maXhlZE5hdmlnYXRpb24peyQoJyNsaWdodGJveC1pbWFnZSwjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94LCNsaWdodGJveC1pbWFnZS1kZXRhaWxzLWN1cnJlbnROdW1iZXInKS5oaWRlKCk7fWVsc2V7JCgnI2xpZ2h0Ym94LWltYWdlLCNsaWdodGJveC1uYXYsI2xpZ2h0Ym94LW5hdi1idG5QcmV2LCNsaWdodGJveC1uYXYtYnRuTmV4dCwjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94LCNsaWdodGJveC1pbWFnZS1kZXRhaWxzLWN1cnJlbnROdW1iZXInKS5oaWRlKCk7fQ0KdmFyIG9iakltYWdlUHJlbG9hZGVyPW5ldyBJbWFnZSgpO29iakltYWdlUHJlbG9hZGVyLm9ubG9hZD1mdW5jdGlvbigpeyQoJyNsaWdodGJveC1pbWFnZScpLmF0dHIoJ3NyYycsc2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMF0pO19yZXNpemVfY29udGFpbmVyX2ltYWdlX2JveChvYmpJbWFnZVByZWxvYWRlci53aWR0aCxvYmpJbWFnZVByZWxvYWRlci5oZWlnaHQpO29iakltYWdlUHJlbG9hZGVyLm9ubG9hZD1mdW5jdGlvbigpe307fTtvYmpJbWFnZVByZWxvYWRlci5zcmM9c2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMF07fTtmdW5jdGlvbiBfcmVzaXplX2NvbnRhaW5lcl9pbWFnZV9ib3goaW50SW1hZ2VXaWR0aCxpbnRJbWFnZUhlaWdodCl7dmFyIGludEN1cnJlbnRXaWR0aD0kKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCcpLndpZHRoKCk7dmFyIGludEN1cnJlbnRIZWlnaHQ9JCgnI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1ib3gnKS5oZWlnaHQoKTt2YXIgaW50V2lkdGg9KGludEltYWdlV2lkdGgrKHNldHRpbmdzLmNvbnRhaW5lckJvcmRlclNpemUqMikpO3ZhciBpbnRIZWlnaHQ9KGludEltYWdlSGVpZ2h0KyhzZXR0aW5ncy5jb250YWluZXJCb3JkZXJTaXplKjIpKTt2YXIgaW50RGlmZlc9aW50Q3VycmVudFdpZHRoLWludFdpZHRoO3ZhciBpbnREaWZmSD1pbnRDdXJyZW50SGVpZ2h0LWludEhlaWdodDskKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCcpLmFuaW1hdGUoe3dpZHRoOmludFdpZHRoLGhlaWdodDppbnRIZWlnaHR9LHNldHRpbmdzLmNvbnRhaW5lclJlc2l6ZVNwZWVkLGZ1bmN0aW9uKCl7X3Nob3dfaW1hZ2UoKTt9KTtpZigoaW50RGlmZlc9PTApJiYoaW50RGlmZkg9PTApKXtpZigkLmJyb3dzZXIubXNpZSl7X19fcGF1c2UoMjUwKTt9ZWxzZXtfX19wYXVzZSgxMDApO319DQokKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94JykuY3NzKHt3aWR0aDppbnRJbWFnZVdpZHRofSk7JCgnI2xpZ2h0Ym94LW5hdi1idG5QcmV2LCNsaWdodGJveC1uYXYtYnRuTmV4dCcpLmNzcyh7aGVpZ2h0OmludEltYWdlSGVpZ2h0KyhzZXR0aW5ncy5jb250YWluZXJCb3JkZXJTaXplKjIpfSk7fTtmdW5jdGlvbiBfc2hvd19pbWFnZSgpeyQoJyNsaWdodGJveC1sb2FkaW5nJykuaGlkZSgpOyQoJyNsaWdodGJveC1pbWFnZScpLmZhZGVJbihmdW5jdGlvbigpe19zaG93X2ltYWdlX2RhdGEoKTtfc2V0X25hdmlnYXRpb24oKTt9KTtfcHJlbG9hZF9uZWlnaGJvcl9pbWFnZXMoKTt9O2Z1bmN0aW9uIF9zaG93X2ltYWdlX2RhdGEoKXskKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94Jykuc2xpZGVEb3duKCdmYXN0Jyk7JCgnI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbicpLmhpZGUoKTtpZihzZXR0aW5ncy5pbWFnZUFycmF5W3NldHRpbmdzLmFjdGl2ZUltYWdlXVsxXSl7JCgnI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbicpLmh0bWwoc2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMV0pLnNob3coKTt9DQppZihzZXR0aW5ncy5pbWFnZUFycmF5Lmxlbmd0aD4xKXskKCcjbGlnaHRib3gtaW1hZ2UtZGV0YWlscy1jdXJyZW50TnVtYmVyJykuaHRtbChzZXR0aW5ncy50eHRJbWFnZSsnICcrKHNldHRpbmdzLmFjdGl2ZUltYWdlKzEpKycgJytzZXR0aW5ncy50eHRPZisnICcrc2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGgpLnNob3coKTt9fQ0KZnVuY3Rpb24gX3NldF9uYXZpZ2F0aW9uKCl7JCgnI2xpZ2h0Ym94LW5hdicpLnNob3coKTskKCcjbGlnaHRib3gtbmF2LWJ0blByZXYsI2xpZ2h0Ym94LW5hdi1idG5OZXh0JykuY3NzKHsnYmFja2dyb3VuZCc6J3RyYW5zcGFyZW50IHVybCgnK3NldHRpbmdzLmltYWdlQmxhbmsrJykgbm8tcmVwZWF0J30pO2lmKHNldHRpbmdzLmFjdGl2ZUltYWdlIT0wKXtpZihzZXR0aW5ncy5maXhlZE5hdmlnYXRpb24peyQoJyNsaWdodGJveC1uYXYtYnRuUHJldicpLmNzcyh7J2JhY2tncm91bmQnOid1cmwoJytzZXR0aW5ncy5pbWFnZUJ0blByZXYrJykgbGVmdCAxNSUgbm8tcmVwZWF0J30pLnVuYmluZCgpLmJpbmQoJ2NsaWNrJyxmdW5jdGlvbigpe3NldHRpbmdzLmFjdGl2ZUltYWdlPXNldHRpbmdzLmFjdGl2ZUltYWdlLTE7X3NldF9pbWFnZV90b192aWV3KCk7cmV0dXJuIGZhbHNlO30pO31lbHNleyQoJyNsaWdodGJveC1uYXYtYnRuUHJldicpLnVuYmluZCgpLmhvdmVyKGZ1bmN0aW9uKCl7JCh0aGlzKS5jc3MoeydiYWNrZ3JvdW5kJzondXJsKCcrc2V0dGluZ3MuaW1hZ2VCdG5QcmV2KycpIGxlZnQgMTUlIG5vLXJlcGVhdCd9KTt9LGZ1bmN0aW9uKCl7JCh0aGlzKS5jc3MoeydiYWNrZ3JvdW5kJzondHJhbnNwYXJlbnQgdXJsKCcrc2V0dGluZ3MuaW1hZ2VCbGFuaysnKSBuby1yZXBlYXQnfSk7fSkuc2hvdygpLmJpbmQoJ2NsaWNrJyxmdW5jdGlvbigpe3NldHRpbmdzLmFjdGl2ZUltYWdlPXNldHRpbmdzLmFjdGl2ZUltYWdlLTE7X3NldF9pbWFnZV90b192aWV3KCk7cmV0dXJuIGZhbHNlO30pO319DQppZihzZXR0aW5ncy5hY3RpdmVJbWFnZSE9KHNldHRpbmdzLmltYWdlQXJyYXkubGVuZ3RoLTEpKXtpZihzZXR0aW5ncy5maXhlZE5hdmlnYXRpb24peyQoJyNsaWdodGJveC1uYXYtYnRuTmV4dCcpLmNzcyh7J2JhY2tncm91bmQnOid1cmwoJytzZXR0aW5ncy5pbWFnZUJ0bk5leHQrJykgcmlnaHQgMTUlIG5vLXJlcGVhdCd9KS51bmJpbmQoKS5iaW5kKCdjbGljaycsZnVuY3Rpb24oKXtzZXR0aW5ncy5hY3RpdmVJbWFnZT1zZXR0aW5ncy5hY3RpdmVJbWFnZSsxO19zZXRfaW1hZ2VfdG9fdmlldygpO3JldHVybiBmYWxzZTt9KTt9ZWxzZXskKCcjbGlnaHRib3gtbmF2LWJ0bk5leHQnKS51bmJpbmQoKS5ob3ZlcihmdW5jdGlvbigpeyQodGhpcykuY3NzKHsnYmFja2dyb3VuZCc6J3VybCgnK3NldHRpbmdzLmltYWdlQnRuTmV4dCsnKSByaWdodCAxNSUgbm8tcmVwZWF0J30pO30sZnVuY3Rpb24oKXskKHRoaXMpLmNzcyh7J2JhY2tncm91bmQnOid0cmFuc3BhcmVudCB1cmwoJytzZXR0aW5ncy5pbWFnZUJsYW5rKycpIG5vLXJlcGVhdCd9KTt9KS5zaG93KCkuYmluZCgnY2xpY2snLGZ1bmN0aW9uKCl7c2V0dGluZ3MuYWN0aXZlSW1hZ2U9c2V0dGluZ3MuYWN0aXZlSW1hZ2UrMTtfc2V0X2ltYWdlX3RvX3ZpZXcoKTtyZXR1cm4gZmFsc2U7fSk7fX0NCl9lbmFibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpO30NCmZ1bmN0aW9uIF9lbmFibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpeyQoZG9jdW1lbnQpLmtleWRvd24oZnVuY3Rpb24ob2JqRXZlbnQpe19rZXlib2FyZF9hY3Rpb24ob2JqRXZlbnQpO30pO30NCmZ1bmN0aW9uIF9kaXNhYmxlX2tleWJvYXJkX25hdmlnYXRpb24oKXskKGRvY3VtZW50KS51bmJpbmQoKTt9DQpmdW5jdGlvbiBfa2V5Ym9hcmRfYWN0aW9uKG9iakV2ZW50KXtpZihvYmpFdmVudD09bnVsbCl7a2V5Y29kZT1ldmVudC5rZXlDb2RlO2VzY2FwZUtleT0yNzt9ZWxzZXtrZXljb2RlPW9iakV2ZW50LmtleUNvZGU7ZXNjYXBlS2V5PW9iakV2ZW50LkRPTV9WS19FU0NBUEU7fQ0Ka2V5PVN0cmluZy5mcm9tQ2hhckNvZGUoa2V5Y29kZSkudG9Mb3dlckNhc2UoKTtpZigoa2V5PT1zZXR0aW5ncy5rZXlUb0Nsb3NlKXx8KGtleT09J3gnKXx8KGtleWNvZGU9PWVzY2FwZUtleSkpe19maW5pc2goKTt9DQppZigoa2V5PT1zZXR0aW5ncy5rZXlUb1ByZXYpfHwoa2V5Y29kZT09MzcpKXtpZihzZXR0aW5ncy5hY3RpdmVJbWFnZSE9MCl7c2V0dGluZ3MuYWN0aXZlSW1hZ2U9c2V0dGluZ3MuYWN0aXZlSW1hZ2UtMTtfc2V0X2ltYWdlX3RvX3ZpZXcoKTtfZGlzYWJsZV9rZXlib2FyZF9uYXZpZ2F0aW9uKCk7fX0NCmlmKChrZXk9PXNldHRpbmdzLmtleVRvTmV4dCl8fChrZXljb2RlPT0zOSkpe2lmKHNldHRpbmdzLmFjdGl2ZUltYWdlIT0oc2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGgtMSkpe3NldHRpbmdzLmFjdGl2ZUltYWdlPXNldHRpbmdzLmFjdGl2ZUltYWdlKzE7X3NldF9pbWFnZV90b192aWV3KCk7X2Rpc2FibGVfa2V5Ym9hcmRfbmF2aWdhdGlvbigpO319fQ0KZnVuY3Rpb24gX3ByZWxvYWRfbmVpZ2hib3JfaW1hZ2VzKCl7aWYoKHNldHRpbmdzLmltYWdlQXJyYXkubGVuZ3RoLTEpPnNldHRpbmdzLmFjdGl2ZUltYWdlKXtvYmpOZXh0PW5ldyBJbWFnZSgpO29iak5leHQuc3JjPXNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2UrMV1bMF07fQ0KaWYoc2V0dGluZ3MuYWN0aXZlSW1hZ2U+MCl7b2JqUHJldj1uZXcgSW1hZ2UoKTtvYmpQcmV2LnNyYz1zZXR0aW5ncy5pbWFnZUFycmF5W3NldHRpbmdzLmFjdGl2ZUltYWdlLTFdWzBdO319DQpmdW5jdGlvbiBfZmluaXNoKCl7JCgnI2pxdWVyeS1saWdodGJveCcpLnJlbW92ZSgpOyQoJyNqcXVlcnktb3ZlcmxheScpLmZhZGVPdXQoZnVuY3Rpb24oKXskKCcjanF1ZXJ5LW92ZXJsYXknKS5yZW1vdmUoKTt9KTskKCcubWVhc3VyZWRMQVlPVVQsIGVtYmVkLCBvYmplY3QsIHNlbGVjdCcpLmNzcyh7J3Zpc2liaWxpdHknOid2aXNpYmxlJ30pO30NCmZ1bmN0aW9uIF9fX2dldFBhZ2VTaXplKCl7dmFyIHhTY3JvbGwseVNjcm9sbDtpZih3aW5kb3cuaW5uZXJIZWlnaHQmJndpbmRvdy5zY3JvbGxNYXhZKXt4U2Nyb2xsPXdpbmRvdy5pbm5lcldpZHRoK3dpbmRvdy5zY3JvbGxNYXhYO3lTY3JvbGw9d2luZG93LmlubmVySGVpZ2h0K3dpbmRvdy5zY3JvbGxNYXhZO31lbHNlIGlmKGRvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0KXt4U2Nyb2xsPWRvY3VtZW50LmJvZHkuc2Nyb2xsV2lkdGg7eVNjcm9sbD1kb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodDt9ZWxzZXt4U2Nyb2xsPWRvY3VtZW50LmJvZHkub2Zmc2V0V2lkdGg7eVNjcm9sbD1kb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDt9DQp2YXIgd2luZG93V2lkdGgsd2luZG93SGVpZ2h0O2lmKHNlbGYuaW5uZXJIZWlnaHQpe2lmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl7d2luZG93V2lkdGg9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO31lbHNle3dpbmRvd1dpZHRoPXNlbGYuaW5uZXJXaWR0aDt9DQp3aW5kb3dIZWlnaHQ9c2VsZi5pbm5lckhlaWdodDt9ZWxzZSBpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpe3dpbmRvd1dpZHRoPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aDt3aW5kb3dIZWlnaHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodDt9ZWxzZSBpZihkb2N1bWVudC5ib2R5KXt3aW5kb3dXaWR0aD1kb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO3dpbmRvd0hlaWdodD1kb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodDt9DQppZih5U2Nyb2xsPHdpbmRvd0hlaWdodCl7cGFnZUhlaWdodD13aW5kb3dIZWlnaHQ7fWVsc2V7cGFnZUhlaWdodD15U2Nyb2xsO30NCmlmKHhTY3JvbGw8d2luZG93V2lkdGgpe3BhZ2VXaWR0aD14U2Nyb2xsO31lbHNle3BhZ2VXaWR0aD13aW5kb3dXaWR0aDt9DQphcnJheVBhZ2VTaXplPW5ldyBBcnJheShwYWdlV2lkdGgscGFnZUhlaWdodCx3aW5kb3dXaWR0aCx3aW5kb3dIZWlnaHQpO3JldHVybiBhcnJheVBhZ2VTaXplO307ZnVuY3Rpb24gX19fZ2V0UGFnZVNjcm9sbCgpe3ZhciB4U2Nyb2xsLHlTY3JvbGw7aWYoc2VsZi5wYWdlWU9mZnNldCl7eVNjcm9sbD1zZWxmLnBhZ2VZT2Zmc2V0O3hTY3JvbGw9c2VsZi5wYWdlWE9mZnNldDt9ZWxzZSBpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3Ape3lTY3JvbGw9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDt4U2Nyb2xsPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxMZWZ0O31lbHNlIGlmKGRvY3VtZW50LmJvZHkpe3lTY3JvbGw9ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A7eFNjcm9sbD1kb2N1bWVudC5ib2R5LnNjcm9sbExlZnQ7fQ0KYXJyYXlQYWdlU2Nyb2xsPW5ldyBBcnJheSh4U2Nyb2xsLHlTY3JvbGwpO3JldHVybiBhcnJheVBhZ2VTY3JvbGw7fTtmdW5jdGlvbiBfX19wYXVzZShtcyl7dmFyIGRhdGU9bmV3IERhdGUoKTtjdXJEYXRlPW51bGw7ZG97dmFyIGN1ckRhdGU9bmV3IERhdGUoKTt9DQp3aGlsZShjdXJEYXRlLWRhdGU8bXMpO307cmV0dXJuIHRoaXMudW5iaW5kKCdjbGljaycpLmNsaWNrKF9pbml0aWFsaXplKTt9O30pKGpRdWVyeSk7DQpqUXVlcnkudmFsaWRhdG9yLmFkZE1ldGhvZCggICAgICAgICAidmluVVMiLCAgICAgICAgIGZ1bmN0aW9uKHYpeyAgICAgICAgICAgICAgICAgaWYgKHYubGVuZ3RoICE9IDE3KSAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgICAgICAgICB2YXIgaSwgbiwgZCwgZiwgY2QsIGNkdjsgICAgICAgICAgICAgICAgIHZhciBMTCAgICA9IFsiQSIsIkIiLCJDIiwiRCIsIkUiLCJGIiwiRyIsIkgiLCJKIiwiSyIsIkwiLCJNIiwiTiIsIlAiLCJSIiwiUyIsIlQiLCJVIiwiViIsIlciLCJYIiwiWSIsIloiXTsgICAgICAgICAgICAgICAgIHZhciBWTCAgICA9IFsxLDIsMyw0LDUsNiw3LDgsMSwyLDMsNCw1LDcsOSwyLDMsNCw1LDYsNyw4LDldOyAgICAgICAgICAgICAgICAgdmFyIEZMICAgID0gWzgsNyw2LDUsNCwzLDIsMTAsMCw5LDgsNyw2LDUsNCwzLDJdOyAgICAgICAgICAgICAgICAgdmFyIHJzICAgID0gMDsgICAgICAgICAgICAgICAgIGZvcihpID0gMDsgaSA8IDE3OyBpKyspeyAgICAgICAgICAgICAgICAgICAgIGYgPSBGTFtpXTsgICAgICAgICAgICAgICAgICAgICBkID0gdi5zbGljZShpLGkrMSk7ICAgICAgICAgICAgICAgICAgICAgaWYoaSA9PSA4KXsgICAgICAgICAgICAgICAgICAgICAgICAgY2R2ID0gZDsgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgaWYoIWlzTmFOKGQpKXsgICAgICAgICAgICAgICAgICAgICAgICAgZCAqPSBmOyAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICBlbHNleyAgICAgICAgICAgICAgICAgICAgICAgICBmb3IobiA9IDA7IG4gPCBMTC5sZW5ndGg7IG4rKyl7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkLnRvVXBwZXJDYXNlKCkgPT09IExMW25dKXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkID0gVkxbbl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCAqPSBmOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlzTmFOKGNkdikgJiYgbiA9PSA4KXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2R2ID0gTExbbl07ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgIHJzICs9IGQ7ICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICBjZCA9IHJzICUgMTE7ICAgICAgICAgICAgICAgICBpZihjZCA9PSAxMCl7Y2QgPSAiWCI7fSAgICAgICAgICAgICAgICAgaWYoY2QgPT0gY2R2KXtyZXR1cm4gdHJ1ZTt9ICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7ICAgICAgICAgIH0sICAgICAgICAgIlRoZSBzcGVjaWZpZWQgdmVoaWNsZSBpZGVudGlmaWNhdGlvbiBudW1iZXIgKFZJTikgaXMgaW52YWxpZC4iICk7IA0KDQoNCg0K]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiR1cmxleHQ9Jz8nLkNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07DQoJCQkJJGhlbHBMaW5rID0JIjx0ZD48YSBocmVmPVwibGlzdG1vZHVsZXMucGhwIi4kdXJsZXh0LiImYW1wO2FjdGlvbj1zaG93bW9kdWxlaGVscCZhbXA7bW9kdWxlPVBheVBhbEJ1dHRvbk1ha2VyJm0xX2FjdGl2ZV90YWI9b3B0aW9uc1wiPiIubGFuZygnaGVscCcpLiI8L2E+PC90ZD4iOw0KCWdsb2JhbCAkZ0NtczsNCgkkcHBibT0mJGdDbXMtPm1vZHVsZXNbJ1BheVBhbEJ1dHRvbk1ha2VyJ11bJ29iamVjdCddOw0KJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1BheVBhbEJ1dHRvbk1ha2VyJzsNCiRsYW5nWydwb3N0aW5zdGFsbCddID0gJ1RoZSBmaXJzdCBzdG9wIHlvdVwnbGwgd2FudCB0byBtYWtlIGlzICcuJGhlbHBMaW5rOw0KJGxhbmdbJ3Bvc3R1bmluc3RhbGwnXSA9ICdQbGVhc2UgZmVlbCBmcmVlIHRvIGxldCB1cyBrbm93IGlmIHRoZXJlIGlzIGEgd2F5IHRvIG1ha2UgUGF5UGFsIEJ1dHRvbiBNYWtlciBiZXR0ZXIsIDxhIGhyZWY9Imh0dHA6Ly9oZWxwLmNvcmJlbnNwcm9kdWN0cy5jb20vbWFrZS1jb250YWN0Lmh0bWwiPkNvbnRhY3QgdXMgd2VcJ2VyIGhhcHB5IHRvIGhlYXIgZnJvbSB5b3UuPC9hPic7DQokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1VuaW5zdGFsbGluZyB0aGlzIG1vZHVsZSB3aWxsIG5vdCBhZmZlY3QgYW55IGV2ZW50IGRhdGEgYW5kIGFsbCBib29rcyB0byBkYXRlIHdpbGwgc3RpbGwgYmUgdGhlcmUuIERvIHlvdSB3aXNoIHRvIGNvbnRpbnVlPyc7DQokbGFuZ1sndW5pbnN0YWxsZWQnXSA9ICdNb2R1bGUgVW5pbnN0YWxsZWQuJzsNCiRsYW5nWydpbnN0YWxsZWQnXSA9ICdNb2R1bGUgdmVyc2lvbiAlcyBpbnN0YWxsZWQuJzsNCiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7DQoNCi8vL0FkbWluDQokbGFuZ1snQUNUb3B0aW9ucyddID0gJ0FjY291bnQgT3B0aW9ucyc7DQokbGFuZ1snQlROb3B0aW9ucyddID0gJ0J1dHRvbiBEZWZhdWx0cyc7DQoNCg0KDQoNCiRsYW5nWydCdG5fbGlzdCddID0gJ0J1dHRvbnMnOw0KJGxhbmdbJ3Byb21wdF9uZXdCdG4nXSA9ICdBZGQgTmV3IEJ1dHRvbic7DQokbGFuZ1sndGl0bGVfYXZhaWxhYmxlX3RlbXBsYXRlcyddID0gJ0J1dHRvbnMgTGlzdCc7DQokbGFuZ1snYXJleW91c3VyZSddID0gJ0ltcG9ydGFudDpcblxuSWYgdGhpcyBpcyBkZWxldGVkIGFsbCBpbmZvcm1hdGlvbiB3aWxsIGJlIGxvc3QhXG4nOw0KDQoNCg0KLy8vbWVzc2FnZXMNCg0KJGxhbmdbJ0NhbmNlbGVkJ10gPSAnWW91IENhbmNlbGVkIG91dCBvZiB0aGUgb3BlcmF0aW9uLiAgQW55IFdvcmsgeW91IG1heSBoYXZlIGVudGVyZWQgaGFzIGJlZW4gbG9zdC4nOw0KDQokbGFuZ1snQnRuQURERUQnXSA9ICdZb3UgSnVzdCBBZGRlZCBhIG5ldyBQYXlQYWwgQnV0dG9uJzsNCiRsYW5nWydCdG5FRElURUQnXSA9ICdZb3UgSnVzdCBFZGl0ZWQgYW4gZXhpc3RpbmcgUGF5UGFsIEJ1dHRvbic7DQokbGFuZ1snQnRuREVMRVRFRCddID0gJ1lvdSBKdXN0IERlbGV0ZWQgYW4gZXhpc3RpbmcgUGF5UGFsIEJ1dHRvbic7DQoNCg0KDQoNCiRsYW5nWydhbW91bnQnXSA9ICc8cD5UaGUgcHJpY2Ugb3IgYW1vdW50IG9mIHRoZSBwcm9kdWN0LCBzZXJ2aWNlLCBvciBjb250cmlidXRpb24sIG5vdCBpbmNsdWRpbmcgc2hpcHBpbmcsIGhhbmRsaW5nLCBvciB0YXguIElmIG9taXR0ZWQgZnJvbSBCdXkgTm93IG9yIERvbmF0ZSBidXR0b25zLCBwYXllcnMgZW50ZXIgdGhlaXIgb3duIGFtb3VudCBhdCB0aGUgdGltZSBvZiBwYXltZW50LjwvcD4NCjx1bD4NCjxsaT5SZXF1aXJlZCBmb3IgQWRkIHRvIENhcnQgYnV0dG9uczwvbGk+DQo8bGk+T3B0aW9uYWwgZm9yIEJ1eSBOb3cgYW5kIERvbmF0ZSBidXR0b25zPC9saT4NCjxsaT5Ob3QgdXNlZCB3aXRoIFN1YnNjcmliZSBvciBCdXkgR2lmdCBDZXJ0aWZpY2F0ZSBidXR0b25zPC9saT4NCjwvdWw+JzsNCg0KJGxhbmdbJ2l0ZW1fbmFtZSddID0gJzxwPkRlc2NyaXB0aW9uIG9mIGl0ZW0uIElmIG9taXR0ZWQsIHBheWVycyBlbnRlciB0aGVpciBvd24gbmFtZSBhdCB0aGUgdGltZSBvZiBwYXltZW50LjwvcD4NCjx1bD4NCjxsaT5PcHRpb25hbCBmb3IgQnV5IE5vdywgRG9uYXRlLCBTdWJzY3JpYmUgYW5kIEFkZCB0byBDYXJ0IGJ1dHRvbnM8L2xpPg0KPGxpPk5vdCB1c2VkIHdpdGggQnV5IEdpZnQgQ2VydGlmaWNhdGUgYnV0dG9uczwvbGk+DQo8L3VsPic7DQoNCiRsYW5nWydpdGVtX251bWJlciddID0gJzxwPlBhc3MtdGhyb3VnaCB2YXJpYWJsZSBmb3IgeW91IHRvIHRyYWNrIHByb2R1Y3Qgb3Igc2VydmljZSBwdXJjaGFzZWQgb3IgdGhlIGNvbnRyaWJ1dGlvbiBtYWRlLiBUaGUgdmFsdWUgeW91IHNwZWNpZnkgcGFzc2VkIGJhY2sgdG8geW91IHVwb24gcGF5bWVudCBjb21wbGV0aW9uLg0KPC9wPic7DQoNCiRsYW5nWydxdWFudGl0eSddID0gJzxwPk51bWJlciBvZiBpdGVtcy4gSWYgcHJvZmlsZS1iYXNlZCBzaGlwcGluZyByYXRlcyBhcmUgY29uZmlndXJlZCB3aXRoIGEgYmFzaXMgb2YgcXVhbnRpdHksIHRoZSBzdW0gb2YgcXVhbnRpdHkgdmFsdWVzIGlzIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSBzaGlwcGluZyBjaGFyZ2VzIGZvciB0aGUgdHJhbnNhY3Rpb24uIFBheVBhbCBhcHBlbmRzIGEgc2VxdWVuY2UgbnVtYmVyIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBpdGVtIGluIHRoZSBQYXlQYWwgU2hvcHBpbmcgQ2FydCAoZS5nLiwgcXVhbnRpdHkxLCBxdWFudGl0eTIpLjwvcD4NCjxwPg0KPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBUaGUgdmFsdWUgZm9yIHF1YW50aXR5IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLiBOdWxsLCB6ZXJvLCBvciBuZWdhdGl2ZSBudW1iZXJzIGFyZSBub3QgYWxsb3dlZC4NCjwvcD4nOw0KDQokbGFuZ1snY3BwX2hlYWRlcl9pbWFnZSddID0gJzxwPlRoZSBpbWFnZSBhdCB0aGUgdG9wIGxlZnQgb2YgdGhlIGNoZWNrb3V0IHBhZ2UuIFRoZSBpbWFnZZJzIG1heGltdW0gc2l6ZSBpcyA3NTAgcGl4ZWxzIHdpZGUgYnkgOTAgcGl4ZWxzIGhpZ2guIFBheVBhbCByZWNvbW1lbmRzIHRoYXQgeW91IHByb3ZpZGUgYW4gaW1hZ2UgdGhhdCBpcyBzdG9yZWQgb25seSBvbiBhIHNlY3VyZSAoaHR0cHMpIHNlcnZlci4NCjwvcD4nOw0KDQokbGFuZ1snY3BwX2hlYWRlcmJhY2tfY29sb3InXSA9ICc8cD5UaGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGhlYWRlciBvZiB0aGUgY2hlY2tvdXQgcGFnZS4NCg0KVmFsaWQgdmFsdWUgaXMgY2FzZS1pbnNlbnNpdGl2ZSBzaXgtY2hhcmFjdGVyIEhUTUwgaGV4YWRlY2ltYWwgY29sb3IgY29kZSBpbiBBU0NJSS4NCg0KPC9wPic7DQoNCiRsYW5nWydSZWRpcmVjdFVSTCddID0gJzxwPlBhc3MtdGhyb3VnaCB2YXJpYWJsZSBmb3IgeW91IHRvIHRyYWNrIHByb2R1Y3Qgb3Igc2VydmljZSBwdXJjaGFzZWQgb3IgdGhlIGNvbnRyaWJ1dGlvbiBtYWRlLiBUaGUgdmFsdWUgeW91IHNwZWNpZnkgcGFzc2VkIGJhY2sgdG8geW91IHVwb24gcGF5bWVudCBjb21wbGV0aW9uLg0KPC9wPic7DQoNCg0KJGxhbmdbJ2ltYWdlX3VybCddID0gJzxwPlRoZSBVUkwgb2YgdGhlIDE1MHg1MC1waXhlbCBpbWFnZSBkaXNwbGF5ZWQgYXMgeW91ciBsb2dvIGluIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBvZiB0aGUgUGF5UGFsIGNoZWNrb3V0IHBhZ2VzLg0KDQpEZWZhdWx0IJYgWW91ciBidXNpbmVzcyBuYW1lLCBpZiB5b3UgaGF2ZSBhIEJ1c2luZXNzIGFjY291bnQsIG9yIHlvdXIgZW1haWwgYWRkcmVzcywgaWYgeW91IGhhdmUgUHJlbWllciBvciBQZXJzb25hbCBhY2NvdW50Lg0KDQo8L3A+JzsNCg0KDQokbGFuZ1snYnVzaW5lc3NOYW1lJ10gPSAnPHA+UGFzcy10aHJvdWdoIHZhcmlhYmxlIGZvciB5b3UgdG8gdHJhY2sgcHJvZHVjdCBvciBzZXJ2aWNlIHB1cmNoYXNlZCBvciB0aGUgY29udHJpYnV0aW9uIG1hZGUuIFRoZSB2YWx1ZSB5b3Ugc3BlY2lmeSBwYXNzZWQgYmFjayB0byB5b3UgdXBvbiBwYXltZW50IGNvbXBsZXRpb24uDQo8L3A+JzsNCg0KDQokbGFuZ1snU0FOREJPWF9idXNpbmVzc05hbWUnXSA9ICc8cD5QYXNzLXRocm91Z2ggdmFyaWFibGUgZm9yIHlvdSB0byB0cmFjayBwcm9kdWN0IG9yIHNlcnZpY2UgcHVyY2hhc2VkIG9yIHRoZSBjb250cmlidXRpb24gbWFkZS4gVGhlIHZhbHVlIHlvdSBzcGVjaWZ5IHBhc3NlZCBiYWNrIHRvIHlvdSB1cG9uIHBheW1lbnQgY29tcGxldGlvbi4NCjwvcD4nOw0KDQokbGFuZ1snU0FOREJPWF9wZXJzb25hbE5hbWUnXSA9ICc8cD5QYXNzLXRocm91Z2ggdmFyaWFibGUgZm9yIHlvdSB0byB0cmFjayBwcm9kdWN0IG9yIHNlcnZpY2UgcHVyY2hhc2VkIG9yIHRoZSBjb250cmlidXRpb24gbWFkZS4gVGhlIHZhbHVlIHlvdSBzcGVjaWZ5IHBhc3NlZCBiYWNrIHRvIHlvdSB1cG9uIHBheW1lbnQgY29tcGxldGlvbi4NCjwvcD4nOw0KDQoNCiRsYW5nWydub19zaGlwcGluZyddID0gJzxwPlBhc3MtdGhyb3VnaCB2YXJpYWJsZSBmb3IgeW91IHRvIHRyYWNrIHByb2R1Y3Qgb3Igc2VydmljZSBwdXJjaGFzZWQgb3IgdGhlIGNvbnRyaWJ1dGlvbiBtYWRlLiBUaGUgdmFsdWUgeW91IHNwZWNpZnkgcGFzc2VkIGJhY2sgdG8geW91IHVwb24gcGF5bWVudCBjb21wbGV0aW9uLg0KPC9wPic7DQoNCiRsYW5nWydub3RpZnlfdXJsJ10gPSAnPHA+UGFzcy10aHJvdWdoIHZhcmlhYmxlIGZvciB5b3UgdG8gdHJhY2sgcHJvZHVjdCBvciBzZXJ2aWNlIHB1cmNoYXNlZCBvciB0aGUgY29udHJpYnV0aW9uIG1hZGUuIFRoZSB2YWx1ZSB5b3Ugc3BlY2lmeSBwYXNzZWQgYmFjayB0byB5b3UgdXBvbiBwYXltZW50IGNvbXBsZXRpb24uDQo8L3A+JzsNCg0KLy9BY2NvdW50IG9wdGlvbnMNCiRsYW5nWydpbnRlcm5hbF9sYWJlbCddID0gJ01ha2UgdGhlIGZvcm0gaW50ZXJuYWwnOw0KJGxhbmdbJ0Zvcm1WYWx1ZV9sYWJlbCddID0gJ1RoaXMgaXMgdGhlIFNhbHQgZm9yIGdyYWJiaW5nIHRoZSBidXR0b24nOw0KJGxhbmdbJ0Zvcm1LZXlfbGFiZWwnXSA9ICdUaGlzIGlzIHRoZSBTYWx0IGZvciBncmFiYmluZyB0aGUgYnV0dG9uIElEJzsNCiRsYW5nWydjcHBfaGVhZGVyX2ltYWdlX2xhYmVsJ10gPSAnSGVhZGVyIEltYWdlICh0aGlzIGlzIHNpemVkIHRvIGEgaGVpZ2h0IG9mKSc7DQokbGFuZ1snY3BwX2hlYWRlcmJhY2tfY29sb3JfbGFiZWwnXSA9ICdiYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgaGVhZGVyJzsNCiRsYW5nWydDUF9sYWJlbCddID0gJ0NvbG9yIFBpY2tlcic7DQoNCg0KJGxhbmdbJ2ltYWdlX3VybF9sYWJlbCddID0gJ0EgbG9nbyAod2lsbCBiZSBvdmVyIHdyaXR0ZW4gd2l0aCBjcHBfaGVhZGVyX2ltYWdlKSc7DQokbGFuZ1snYnVzaW5lc3NOYW1lX2xhYmVsJ10gPSAnVGhlIFBheVBhbCB0byB3aGljaCB0aGUgbW9uZXkgZ29lcyB0byc7DQokbGFuZ1snU0FOREJPWF9idXNpbmVzc05hbWVfbGFiZWwnXSA9ICdUaGUgU2FuZGJveCBTZWxsZXIgYWNjb3VudCc7DQokbGFuZ1snU0FOREJPWF9wZXJzb25hbE5hbWVfbGFiZWwnXSA9ICdUaGUgU2FuZGJveCBCdXllciBhY2NvdW50JzsNCiRsYW5nWydTQU5EQk9YX2J1c2luZXNzUEFTU19sYWJlbCddID0gJ1RoZSBTYW5kYm94IFNlbGxlciBQYXNzd29yZCc7DQokbGFuZ1snU0FOREJPWF9wZXJzb25hbFBBU1NfbGFiZWwnXSA9ICdUaGUgU2FuZGJveCBCdXllciBQYXNzd29yZCc7DQokbGFuZ1snTGFuZ19sYWJlbCddID0gJ0Nob29zZSB5b3VyIGRlZmF1bHQgTGFuZ3VhZ2UnOw0KDQoNCi8vQnV0dG9uIG9wdGlvbnMNCiRsYW5nWydSZWRpcmVjdFVSTF9sYWJlbCddID0gJzxzdHJvbmc+UmVkaXJlY3QgVVJMPC9zdHJvbmc+PGJyLz4gdG8gd2hpY2ggUGF5UGFsIHJldHVybnMgdG8gb24gZmluaXNoJzsNCiRsYW5nWydub19zaGlwcGluZ19sYWJlbCddID0gJ1Byb21wdCBwYXllcnMgZm9yIHNoaXBwaW5nIGFkZHJlc3MnOw0KJGxhbmdbJ25vdGlmeV91cmxfbGFiZWwnXSA9ICdVUkwgdG8gd2hpY2ggUGF5UGFsIHBvc3RzIGluZm9ybWF0aW9uICc7DQokbGFuZ1snY2FuY2VsX3JldHVybl9sYWJlbCddID0gJzxzdHJvbmc+Q2FuY2VsIFVSTDwvc3Ryb25nPjxici8+ICB0byB3aGljaCBQYXlQYWwgcmV0dXJucyB0byBvbiBjYW5jZWwnOw0KDQoNCg0KDQoNCg0KLy9BbGVydHMgYW5kIE1lc3NhZ2VzDQokbGFuZ1snQ2xlYXJJbWcnXSA9ICdEZWxldGUgQ3VycmVudCBJbWFnZSc7DQoNCg0KJGxhbmdbJ2NhbmNlbCddID0gJ0NhbmNlbCc7DQokbGFuZ1snZm9ybV9jYW5jZWwnXSA9ICdDYW5jZWwnOw0KDQokbGFuZ1snc3VibWl0J10gPSAnU3VibWl0JzsNCiRsYW5nWydmb3JtX3N1Ym1pdCddID0gJ1NhdmUgUHJlZmVyZW5jZXMnOw0KDQokbGFuZ1snbW9kX3ByZWZzX3RpdGxlJ10gPSAnTW9kdWxlIFByZWZlcmVuY2VzJzsNCiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOw0KJGxhbmdbJ29wdGlvbnN1cGRhdGVkJ10gPSAnb3B0aW9ucyB1cGRhdGVkJzsNCg0KDQoNCg0KDQokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdQYXlQYWxCdXR0b25NYWtlciBpcyBhIFBheVBhbCBidXR0b24gbWFuYWdlci4gSXQgaGFuZGxlcyB0aGUgYnV0dG9ucyBpbnRlcm5hbCB0byB0aGUgc2l0ZSBhbHNvIGxpZnRzIHRoZSAxMDAgYnV0dG9uIGNhcCBvZiBQYXlQYWwgaG9zdGVkIGJ1dHRvbnMuIFNlY3VyZSB1c2luZyB0aW1lIGJhc2VkIHNoYTEgZW5jcnlwdGlvbjsgVGllIHRvIG1vc3QgbW9kczsgRmlyZSBVVERcJ3Mgb3IgcGx1Zy1pbnMuIFNpbXBsZSwgZmxleGlibGUuJzsNCiRsYW5nWyd3ZWxjb21lX3RleHQnXSA9ICc8cD5IZWxsbyE8L3A+JzsNCiRsYW5nWydjaGFuZ2Vsb2cnXSA9ICcNCjx1bD4NCg0KICA8bGk+VmVyc2lvbiAwLjEgQmV0YSByZWxlYXNlLjwvbGk+DQo8L3VsPic7DQokbGFuZ1snaGVscCddID0gJzxsaW5rIG1lZGlhPSJzY3JlZW4iIGhyZWY9Ii4uL21vZHVsZXMvUGF5UGFsQnV0dG9uTWFrZXIvQ1NTL01hc3RlckNTUy5jc3MiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiPjxkaXYgY2xhc3M9IlNpbVdyYXAiPjxiIGNsYXNzPSJyYm90dG9tIj48YiBjbGFzcz0icjEiPjwvYj4gPGIgY2xhc3M9InIyIj48L2I+PGIgY2xhc3M9InIzIj48L2I+IDxiIGNsYXNzPSJyNCI+PC9iPjwvYj4NCg0KPGRpdiBjbGFzcz0iU2ltY29uIj4NCjxoMz5XaGF0IERvZXMgVGhpcyBEbz8tLS0gdGhpcyBuZWVkcyB1cGRhdGluZzwvaDM+DQo8cD5NYWtlIGFuZCBtYW5hZ2UgUGF5UGFsIEJ1dHRvbnM8L3A+DQoNCllvdSBlbmQgdXAgd2l0aCB0aGlzLi4uICcuJHBwYm0tPlByb2Nlc3NUZW1wbGF0ZSgic2FtcGxlLnRwbCIpLicNCg0KPGgzPkhvdyBEbyBJIFVzZSBJdDwvaDM+DQoNCg0KPGJyLz48YnIvPg0KDQo8aDM+R2V0IHRoZSBidXR0b248L2gzPg0KdXNlIDxzcGFuIGNsYXNzPSJjb2RlSElHSExJR0hUIj57Y21zX21vZHVsZSBtb2R1bGU9UGF5UGFsQnV0dG9uTWFrZXIgTW9kZT0iZGVmYXVsdCIgQnRuPSJCTFNCdG4ifSA8L3NwYW4+IDxici8+PGJyLz4NCg0KPGgzPkRvIHNvbWV0aGluZyBvbiB0aGUgcmV0dXJuPC9oMz4NCnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e2Ntc19tb2R1bGUgbW9kdWxlPVBheVBhbEJ1dHRvbk1ha2VyIE1vZGU9InJlY2VpdmVyIiBCdG49IkJMU0J0biIgUlVOYWN0aW9uPSJVRFQifSA8L3NwYW4+IDxici8+PGJyLz4NCg0KPGgzPlRlc3QgdmlhIHRoZSBQYXlQYWwgU2FuZGJveDwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPntjbXNfbW9kdWxlIG1vZHVsZT1QYXlQYWxCdXR0b25NYWtlciBNb2RlPSJkZWZhdWx0IiBCdG49IkJMU0J0biIgU2FuZEJveD10cnVlfSA8L3NwYW4+IDxici8+PGJyLz4NCg0KPGgzPk91dHB1dCB0aGUgRmluYWwgbWVzc2FnZTwvaDM+DQp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPnskVXBncmFkZU1FU1N9PC9zcGFuPiBiZWxvdyB0aGUgInJlY2VpdmVyIiB0YWcgPGJyLz48YnIvPg0KDQoNCg0KDQo8YnIvPjxici8+DQo8aDQ+UGFyYW1zPC9oND4NCjx1bD4NCjxsaT48c3Ryb25nPk1vZGU9ImRlZmF1bHQiPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZGVmYXVsdDxici8+fCByZWNlaXZlcjxici8+PC9saT4NCjxsaT48c3Ryb25nPkJ0bj0iIiA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkKTwvZW0+IDxici8+fCBzZXQgdGhlIGFsaWFzPGJyLz48L2xpPg0KPGxpPjxzdHJvbmc+U2FuZEJveD10cnVlIDwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGZhbHNlPGJyLz48L2xpPg0KDQo8bGk+PHN0cm9uZz5SVU5hY3Rpb249IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4NCjxsaT48c3Ryb25nPkxhbmc9IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVXNlIENvdW50cnkgQ29kZXMgVG8gZHluYW1pY2x5IHNldCB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIFBheVBhbCBwYWdlPGJyLz48L2xpPg0KDQo8L3VsPg0KPGJyLz4NCjxoMj5Db3VudHJ5IENvZGVzPC9oMj4NCjxkaXYgY2xhc3M9ImNvbnRyeUNvZGVzIj4NCkFGR0hBTklTVEFOICAtICA8c3Ryb25nPkFGPC9zdHJvbmc+PGJyLz5BTEFORCBJU0xBTkRTICAtICA8c3Ryb25nPkFYPC9zdHJvbmc+PGJyLz5BTEJBTklBICAtICA8c3Ryb25nPkFMPC9zdHJvbmc+PGJyLz5BTEdFUklBICAtICA8c3Ryb25nPkRaPC9zdHJvbmc+PGJyLz5BTUVSSUNBTiBTQU1PQSAgLSAgPHN0cm9uZz5BUzwvc3Ryb25nPjxici8+QU5ET1JSQSAgLSAgPHN0cm9uZz5BRDwvc3Ryb25nPjxici8+QU5HT0xBICAtICA8c3Ryb25nPkFPPC9zdHJvbmc+PGJyLz5BTkdVSUxMQSAgLSAgPHN0cm9uZz5BSTwvc3Ryb25nPjxici8+QU5UQVJDVElDQSAgLSAgPHN0cm9uZz5BUTwvc3Ryb25nPjxici8+QU5USUdVQSBBTkQgQkFSQlVEQSAgLSAgPHN0cm9uZz5BRzwvc3Ryb25nPjxici8+QVJHRU5USU5BICAtICA8c3Ryb25nPkFSPC9zdHJvbmc+PGJyLz5BUk1FTklBICAtICA8c3Ryb25nPkFNPC9zdHJvbmc+PGJyLz5BUlVCQSAgLSAgPHN0cm9uZz5BVzwvc3Ryb25nPjxici8+QVVTVFJBTElBICAtICA8c3Ryb25nPkFVPC9zdHJvbmc+PGJyLz5BVVNUUklBICAtICA8c3Ryb25nPkFUPC9zdHJvbmc+PGJyLz5BWkVSQkFJSkFOICAtICA8c3Ryb25nPkFaPC9zdHJvbmc+PGJyLz5CQUhBTUFTICAtICA8c3Ryb25nPkJTPC9zdHJvbmc+PGJyLz5CQUhSQUlOICAtICA8c3Ryb25nPkJIPC9zdHJvbmc+PGJyLz5CQU5HTEFERVNIICAtICA8c3Ryb25nPkJEPC9zdHJvbmc+PGJyLz5CQVJCQURPUyAgLSAgPHN0cm9uZz5CQjwvc3Ryb25nPjxici8+QkVMQVJVUyAgLSAgPHN0cm9uZz5CWTwvc3Ryb25nPjxici8+QkVMR0lVTSAgLSAgPHN0cm9uZz5CRTwvc3Ryb25nPjxici8+QkVMSVpFICAtICA8c3Ryb25nPkJaPC9zdHJvbmc+PGJyLz5CRU5JTiAgLSAgPHN0cm9uZz5CSjwvc3Ryb25nPjxici8+QkVSTVVEQSAgLSAgPHN0cm9uZz5CTTwvc3Ryb25nPjxici8+QkhVVEFOICAtICA8c3Ryb25nPkJUPC9zdHJvbmc+PGJyLz5CT0xJVklBICAtICA8c3Ryb25nPkJPPC9zdHJvbmc+PGJyLz5CT1NOSUEgQU5EIEhFUlpFR09WSU5BICAtICA8c3Ryb25nPkJBPC9zdHJvbmc+PGJyLz5CT1RTV0FOQSAgLSAgPHN0cm9uZz5CVzwvc3Ryb25nPjxici8+Qk9VVkVUIElTTEFORCAgLSAgPHN0cm9uZz5CVjwvc3Ryb25nPjxici8+QlJBWklMICAtICA8c3Ryb25nPkJSPC9zdHJvbmc+PGJyLz5CUklUSVNIIElORElBTiBPQ0VBTiBURVJSSVRPUlkgIC0gIDxzdHJvbmc+SU88L3N0cm9uZz48YnIvPkJSVU5FSSBEQVJVU1NBTEFNICAtICA8c3Ryb25nPkJOPC9zdHJvbmc+PGJyLz5CVUxHQVJJQSAgLSAgPHN0cm9uZz5CRzwvc3Ryb25nPjxici8+QlVSS0lOQSBGQVNPICAtICA8c3Ryb25nPkJGPC9zdHJvbmc+PGJyLz5CVVJVTkRJICAtICA8c3Ryb25nPkJJPC9zdHJvbmc+PGJyLz5DQU1CT0RJQSAgLSAgPHN0cm9uZz5LSDwvc3Ryb25nPjxici8+Q0FNRVJPT04gIC0gIDxzdHJvbmc+Q008L3N0cm9uZz48YnIvPkNBTkFEQSAgLSAgPHN0cm9uZz5DQTwvc3Ryb25nPjxici8+Q0FQRSBWRVJERSAgLSAgPHN0cm9uZz5DVjwvc3Ryb25nPjxici8+Q0FZTUFOIElTTEFORFMgIC0gIDxzdHJvbmc+S1k8L3N0cm9uZz48YnIvPkNFTlRSQUwgQUZSSUNBTiBSRVBVQkxJQyAgLSAgPHN0cm9uZz5DRjwvc3Ryb25nPjxici8+Q0hBRCAgLSAgPHN0cm9uZz5URDwvc3Ryb25nPjxici8+Q0hJTEUgIC0gIDxzdHJvbmc+Q0w8L3N0cm9uZz48YnIvPkNISU5BICAtICA8c3Ryb25nPkNOPC9zdHJvbmc+PGJyLz5DSFJJU1RNQVMgSVNMQU5EICAtICA8c3Ryb25nPkNYPC9zdHJvbmc+PGJyLz5DT0NPUyAoS0VFTElORykgSVNMQU5EUyAgLSAgPHN0cm9uZz5DQzwvc3Ryb25nPjxici8+Q09MT01CSUEgIC0gIDxzdHJvbmc+Q088L3N0cm9uZz48YnIvPkNPTU9ST1MgIC0gIDxzdHJvbmc+S008L3N0cm9uZz48YnIvPkNPTkdPICAtICA8c3Ryb25nPkNHPC9zdHJvbmc+PGJyLz5DT05HTywgVEhFIERFTU9DUkFUSUMgUkVQVUJMSUMgT0YgVEhFICAtICA8c3Ryb25nPkNEPC9zdHJvbmc+PGJyLz5DT09LIElTTEFORFMgIC0gIDxzdHJvbmc+Q0s8L3N0cm9uZz48YnIvPkNPU1RBIFJJQ0EgIC0gIDxzdHJvbmc+Q1I8L3N0cm9uZz48YnIvPkNPVEUgRFwnSVZPSVJFICAtICA8c3Ryb25nPkNJPC9zdHJvbmc+PGJyLz5DUk9BVElBICAtICA8c3Ryb25nPkhSPC9zdHJvbmc+PGJyLz5DVUJBICAtICA8c3Ryb25nPkNVPC9zdHJvbmc+PGJyLz5DWVBSVVMgIC0gIDxzdHJvbmc+Q1k8L3N0cm9uZz48YnIvPkNaRUNIIFJFUFVCTElDICAtICA8c3Ryb25nPkNaPC9zdHJvbmc+PGJyLz5ERU5NQVJLICAtICA8c3Ryb25nPkRLPC9zdHJvbmc+PGJyLz5ESklCT1VUSSAgLSAgPHN0cm9uZz5ESjwvc3Ryb25nPjxici8+RE9NSU5JQ0EgIC0gIDxzdHJvbmc+RE08L3N0cm9uZz48YnIvPkRPTUlOSUNBTiBSRVBVQkxJQyAgLSAgPHN0cm9uZz5ETzwvc3Ryb25nPjxici8+RUNVQURPUiAgLSAgPHN0cm9uZz5FQzwvc3Ryb25nPjxici8+RUdZUFQgIC0gIDxzdHJvbmc+RUc8L3N0cm9uZz48YnIvPkVMIFNBTFZBRE9SICAtICA8c3Ryb25nPlNWPC9zdHJvbmc+PGJyLz5FUVVBVE9SSUFMIEdVSU5FQSAgLSAgPHN0cm9uZz5HUTwvc3Ryb25nPjxici8+RVJJVFJFQSAgLSAgPHN0cm9uZz5FUjwvc3Ryb25nPjxici8+RVNUT05JQSAgLSAgPHN0cm9uZz5FRTwvc3Ryb25nPjxici8+RVRISU9QSUEgIC0gIDxzdHJvbmc+RVQ8L3N0cm9uZz48YnIvPkZBTEtMQU5EIElTTEFORFMgKE1BTFZJTkFTKSAgLSAgPHN0cm9uZz5GSzwvc3Ryb25nPjxici8+RkFST0UgSVNMQU5EUyAgLSAgPHN0cm9uZz5GTzwvc3Ryb25nPjxici8+RklKSSAgLSAgPHN0cm9uZz5GSjwvc3Ryb25nPjxici8+RklOTEFORCAgLSAgPHN0cm9uZz5GSTwvc3Ryb25nPjxici8+RlJBTkNFICAtICA8c3Ryb25nPkZSPC9zdHJvbmc+PGJyLz5GUkVOQ0ggR1VJQU5BICAtICA8c3Ryb25nPkdGPC9zdHJvbmc+PGJyLz5GUkVOQ0ggUE9MWU5FU0lBICAtICA8c3Ryb25nPlBGPC9zdHJvbmc+PGJyLz5GUkVOQ0ggU09VVEhFUk4gVEVSUklUT1JJRVMgIC0gIDxzdHJvbmc+VEY8L3N0cm9uZz48YnIvPkdBQk9OICAtICA8c3Ryb25nPkdBPC9zdHJvbmc+PGJyLz5HQU1CSUEgIC0gIDxzdHJvbmc+R008L3N0cm9uZz48YnIvPkdFT1JHSUEgIC0gIDxzdHJvbmc+R0U8L3N0cm9uZz48YnIvPkdFUk1BTlkgIC0gIDxzdHJvbmc+REU8L3N0cm9uZz48YnIvPkdIQU5BICAtICA8c3Ryb25nPkdIPC9zdHJvbmc+PGJyLz5HSUJSQUxUQVIgIC0gIDxzdHJvbmc+R0k8L3N0cm9uZz48YnIvPkdSRUVDRSAgLSAgPHN0cm9uZz5HUjwvc3Ryb25nPjxici8+R1JFRU5MQU5EICAtICA8c3Ryb25nPkdMPC9zdHJvbmc+PGJyLz5HUkVOQURBICAtICA8c3Ryb25nPkdEPC9zdHJvbmc+PGJyLz5HVUFERUxPVVBFICAtICA8c3Ryb25nPkdQPC9zdHJvbmc+PGJyLz5HVUFNICAtICA8c3Ryb25nPkdVPC9zdHJvbmc+PGJyLz5HVUFURU1BTEEgIC0gIDxzdHJvbmc+R1Q8L3N0cm9uZz48YnIvPkdVRVJOU0VZICAtICA8c3Ryb25nPkdHPC9zdHJvbmc+PGJyLz5HVUlORUEgIC0gIDxzdHJvbmc+R048L3N0cm9uZz48YnIvPkdVSU5FQS1CSVNTQVUgIC0gIDxzdHJvbmc+R1c8L3N0cm9uZz48YnIvPkdVWUFOQSAgLSAgPHN0cm9uZz5HWTwvc3Ryb25nPjxici8+SEFJVEkgIC0gIDxzdHJvbmc+SFQ8L3N0cm9uZz48YnIvPkhFQVJEIElTTEFORCBBTkQgTUNET05BTEQgSVNMQU5EUyAgLSAgPHN0cm9uZz5ITTwvc3Ryb25nPjxici8+SE9MWSBTRUUgKFZBVElDQU4gQ0lUWSBTVEFURSkgIC0gIDxzdHJvbmc+VkE8L3N0cm9uZz48YnIvPkhPTkRVUkFTICAtICA8c3Ryb25nPkhOPC9zdHJvbmc+PGJyLz5IT05HIEtPTkcgIC0gIDxzdHJvbmc+SEs8L3N0cm9uZz48YnIvPkhVTkdBUlkgIC0gIDxzdHJvbmc+SFU8L3N0cm9uZz48YnIvPklDRUxBTkQgIC0gIDxzdHJvbmc+SVM8L3N0cm9uZz48YnIvPklORElBICAtICA8c3Ryb25nPklOPC9zdHJvbmc+PGJyLz5JTkRPTkVTSUEgIC0gIDxzdHJvbmc+SUQ8L3N0cm9uZz48YnIvPklSQU4sIElTTEFNSUMgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+SVI8L3N0cm9uZz48YnIvPklSQVEgIC0gIDxzdHJvbmc+SVE8L3N0cm9uZz48YnIvPklSRUxBTkQgIC0gIDxzdHJvbmc+SUU8L3N0cm9uZz48YnIvPklTTEUgT0YgTUFOICAtICA8c3Ryb25nPklNPC9zdHJvbmc+PGJyLz5JU1JBRUwgIC0gIDxzdHJvbmc+SUw8L3N0cm9uZz48YnIvPklUQUxZICAtICA8c3Ryb25nPklUPC9zdHJvbmc+PGJyLz5KQU1BSUNBICAtICA8c3Ryb25nPkpNPC9zdHJvbmc+PGJyLz5KQVBBTiAgLSAgPHN0cm9uZz5KUDwvc3Ryb25nPjxici8+SkVSU0VZICAtICA8c3Ryb25nPkpFPC9zdHJvbmc+PGJyLz5KT1JEQU4gIC0gIDxzdHJvbmc+Sk88L3N0cm9uZz48YnIvPktBWkFLSFNUQU4gIC0gIDxzdHJvbmc+S1o8L3N0cm9uZz48YnIvPktFTllBICAtICA8c3Ryb25nPktFPC9zdHJvbmc+PGJyLz5LSVJJQkFUSSAgLSAgPHN0cm9uZz5LSTwvc3Ryb25nPjxici8+S09SRUEsIERFTU9DUkFUSUMgUEVPUExFXCdTIFJFUFVCTElDIE9GICAtICA8c3Ryb25nPktQPC9zdHJvbmc+PGJyLz5LT1JFQSwgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+S1I8L3N0cm9uZz48YnIvPktVV0FJVCAgLSAgPHN0cm9uZz5LVzwvc3Ryb25nPjxici8+S1lSR1laU1RBTiAgLSAgPHN0cm9uZz5LRzwvc3Ryb25nPjxici8+TEFPIFBFT1BMRVwnUyBERU1PQ1JBVElDIFJFUFVCTElDICAtICA8c3Ryb25nPkxBPC9zdHJvbmc+PGJyLz5MQVRWSUEgIC0gIDxzdHJvbmc+TFY8L3N0cm9uZz48YnIvPkxFQkFOT04gIC0gIDxzdHJvbmc+TEI8L3N0cm9uZz48YnIvPkxFU09USE8gIC0gIDxzdHJvbmc+TFM8L3N0cm9uZz48YnIvPkxJQkVSSUEgIC0gIDxzdHJvbmc+TFI8L3N0cm9uZz48YnIvPkxJQllBTiBBUkFCIEpBTUFISVJJWUEgIC0gIDxzdHJvbmc+TFk8L3N0cm9uZz48YnIvPkxJRUNIVEVOU1RFSU4gIC0gIDxzdHJvbmc+TEk8L3N0cm9uZz48YnIvPkxJVEhVQU5JQSAgLSAgPHN0cm9uZz5MVDwvc3Ryb25nPjxici8+TFVYRU1CT1VSRyAgLSAgPHN0cm9uZz5MVTwvc3Ryb25nPjxici8+TUFDQU8gIC0gIDxzdHJvbmc+TU88L3N0cm9uZz48YnIvPk1BQ0VET05JQSwgVEhFIEZPUk1FUiBZVUdPU0xBViBSRVBVQkxJQyBPRiAgLSAgPHN0cm9uZz5NSzwvc3Ryb25nPjxici8+TUFEQUdBU0NBUiAgLSAgPHN0cm9uZz5NRzwvc3Ryb25nPjxici8+TUFMQVdJICAtICA8c3Ryb25nPk1XPC9zdHJvbmc+PGJyLz5NQUxBWVNJQSAgLSAgPHN0cm9uZz5NWTwvc3Ryb25nPjxici8+TUFMRElWRVMgIC0gIDxzdHJvbmc+TVY8L3N0cm9uZz48YnIvPk1BTEkgIC0gIDxzdHJvbmc+TUw8L3N0cm9uZz48YnIvPk1BTFRBICAtICA8c3Ryb25nPk1UPC9zdHJvbmc+PGJyLz5NQVJTSEFMTCBJU0xBTkRTICAtICA8c3Ryb25nPk1IPC9zdHJvbmc+PGJyLz5NQVJUSU5JUVVFICAtICA8c3Ryb25nPk1RPC9zdHJvbmc+PGJyLz5NQVVSSVRBTklBICAtICA8c3Ryb25nPk1SPC9zdHJvbmc+PGJyLz5NQVVSSVRJVVMgIC0gIDxzdHJvbmc+TVU8L3N0cm9uZz48YnIvPk1BWU9UVEUgIC0gIDxzdHJvbmc+WVQ8L3N0cm9uZz48YnIvPk1FWElDTyAgLSAgPHN0cm9uZz5NWDwvc3Ryb25nPjxici8+TUlDUk9ORVNJQSwgRkVERVJBVEVEIFNUQVRFUyBPRiAgLSAgPHN0cm9uZz5GTTwvc3Ryb25nPjxici8+TU9MRE9WQSwgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+TUQ8L3N0cm9uZz48YnIvPk1PTkFDTyAgLSAgPHN0cm9uZz5NQzwvc3Ryb25nPjxici8+TU9OR09MSUEgIC0gIDxzdHJvbmc+TU48L3N0cm9uZz48YnIvPk1PTlRTRVJSQVQgIC0gIDxzdHJvbmc+TVM8L3N0cm9uZz48YnIvPk1PUk9DQ08gIC0gIDxzdHJvbmc+TUE8L3N0cm9uZz48YnIvPk1PWkFNQklRVUUgIC0gIDxzdHJvbmc+TVo8L3N0cm9uZz48YnIvPk1ZQU5NQVIgIC0gIDxzdHJvbmc+TU08L3N0cm9uZz48YnIvPk5BTUlCSUEgIC0gIDxzdHJvbmc+TkE8L3N0cm9uZz48YnIvPk5BVVJVICAtICA8c3Ryb25nPk5SPC9zdHJvbmc+PGJyLz5ORVBBTCAgLSAgPHN0cm9uZz5OUDwvc3Ryb25nPjxici8+TkVUSEVSTEFORFMgIC0gIDxzdHJvbmc+Tkw8L3N0cm9uZz48YnIvPk5FVEhFUkxBTkRTIEFOVElMTEVTICAtICA8c3Ryb25nPkFOPC9zdHJvbmc+PGJyLz5ORVcgQ0FMRURPTklBICAtICA8c3Ryb25nPk5DPC9zdHJvbmc+PGJyLz5ORVcgWkVBTEFORCAgLSAgPHN0cm9uZz5OWjwvc3Ryb25nPjxici8+TklDQVJBR1VBICAtICA8c3Ryb25nPk5JPC9zdHJvbmc+PGJyLz5OSUdFUiAgLSAgPHN0cm9uZz5ORTwvc3Ryb25nPjxici8+TklHRVJJQSAgLSAgPHN0cm9uZz5ORzwvc3Ryb25nPjxici8+TklVRSAgLSAgPHN0cm9uZz5OVTwvc3Ryb25nPjxici8+Tk9SRk9MSyBJU0xBTkQgIC0gIDxzdHJvbmc+TkY8L3N0cm9uZz48YnIvPk5PUlRIRVJOIE1BUklBTkEgSVNMQU5EUyAgLSAgPHN0cm9uZz5NUDwvc3Ryb25nPjxici8+Tk9SV0FZICAtICA8c3Ryb25nPk5PPC9zdHJvbmc+PGJyLz5PTUFOICAtICA8c3Ryb25nPk9NPC9zdHJvbmc+PGJyLz5QQUtJU1RBTiAgLSAgPHN0cm9uZz5QSzwvc3Ryb25nPjxici8+UEFMQVUgIC0gIDxzdHJvbmc+UFc8L3N0cm9uZz48YnIvPlBBTEVTVElOSUFOIFRFUlJJVE9SWSwgT0NDVVBJRUQgIC0gIDxzdHJvbmc+UFM8L3N0cm9uZz48YnIvPlBBTkFNQSAgLSAgPHN0cm9uZz5QQTwvc3Ryb25nPjxici8+UEFQVUEgTkVXIEdVSU5FQSAgLSAgPHN0cm9uZz5QRzwvc3Ryb25nPjxici8+UEFSQUdVQVkgIC0gIDxzdHJvbmc+UFk8L3N0cm9uZz48YnIvPlBFUlUgIC0gIDxzdHJvbmc+UEU8L3N0cm9uZz48YnIvPlBISUxJUFBJTkVTICAtICA8c3Ryb25nPlBIPC9zdHJvbmc+PGJyLz5QSVRDQUlSTiAgLSAgPHN0cm9uZz5QTjwvc3Ryb25nPjxici8+UE9MQU5EICAtICA8c3Ryb25nPlBMPC9zdHJvbmc+PGJyLz5QT1JUVUdBTCAgLSAgPHN0cm9uZz5QVDwvc3Ryb25nPjxici8+UFVFUlRPIFJJQ08gIC0gIDxzdHJvbmc+UFI8L3N0cm9uZz48YnIvPlFBVEFSICAtICA8c3Ryb25nPlFBPC9zdHJvbmc+PGJyLz5SRVVOSU9OICAtICA8c3Ryb25nPlJFPC9zdHJvbmc+PGJyLz5ST01BTklBICAtICA8c3Ryb25nPlJPPC9zdHJvbmc+PGJyLz5SVVNTSUFOIEZFREVSQVRJT04gIC0gIDxzdHJvbmc+UlU8L3N0cm9uZz48YnIvPlJXQU5EQSAgLSAgPHN0cm9uZz5SVzwvc3Ryb25nPjxici8+U0FJTlQgSEVMRU5BICAtICA8c3Ryb25nPlNIPC9zdHJvbmc+PGJyLz5TQUlOVCBLSVRUUyBBTkQgTkVWSVMgIC0gIDxzdHJvbmc+S048L3N0cm9uZz48YnIvPlNBSU5UIExVQ0lBICAtICA8c3Ryb25nPkxDPC9zdHJvbmc+PGJyLz5TQUlOVCBQSUVSUkUgQU5EIE1JUVVFTE9OICAtICA8c3Ryb25nPlBNPC9zdHJvbmc+PGJyLz5TQUlOVCBWSU5DRU5UIEFORCBUSEUgR1JFTkFESU5FUyAgLSAgPHN0cm9uZz5WQzwvc3Ryb25nPjxici8+U0FNT0EgIC0gIDxzdHJvbmc+V1M8L3N0cm9uZz48YnIvPlNBTiBNQVJJTk8gIC0gIDxzdHJvbmc+U008L3N0cm9uZz48YnIvPlNBTyBUT01FIEFORCBQUklOQ0lQRSAgLSAgPHN0cm9uZz5TVDwvc3Ryb25nPjxici8+U0FVREkgQVJBQklBICAtICA8c3Ryb25nPlNBPC9zdHJvbmc+PGJyLz5TRU5FR0FMICAtICA8c3Ryb25nPlNOPC9zdHJvbmc+PGJyLz5TRVJCSUEgQU5EIE1PTlRFTkVHUk8gIC0gIDxzdHJvbmc+Q1M8L3N0cm9uZz48YnIvPlNFWUNIRUxMRVMgIC0gIDxzdHJvbmc+U0M8L3N0cm9uZz48YnIvPlNJRVJSQSBMRU9ORSAgLSAgPHN0cm9uZz5TTDwvc3Ryb25nPjxici8+U0lOR0FQT1JFICAtICA8c3Ryb25nPlNHPC9zdHJvbmc+PGJyLz5TTE9WQUtJQSAgLSAgPHN0cm9uZz5TSzwvc3Ryb25nPjxici8+U0xPVkVOSUEgIC0gIDxzdHJvbmc+U0k8L3N0cm9uZz48YnIvPlNPTE9NT04gSVNMQU5EUyAgLSAgPHN0cm9uZz5TQjwvc3Ryb25nPjxici8+U09NQUxJQSAgLSAgPHN0cm9uZz5TTzwvc3Ryb25nPjxici8+U09VVEggQUZSSUNBICAtICA8c3Ryb25nPlpBPC9zdHJvbmc+PGJyLz5TT1VUSCBHRU9SR0lBIEFORCBUSEUgU09VVEggU0FORFdJQ0ggSVNMQU5EUyAgLSAgPHN0cm9uZz5HUzwvc3Ryb25nPjxici8+U1BBSU4gIC0gIDxzdHJvbmc+RVM8L3N0cm9uZz48YnIvPlNSSSBMQU5LQSAgLSAgPHN0cm9uZz5MSzwvc3Ryb25nPjxici8+U1VEQU4gIC0gIDxzdHJvbmc+U0Q8L3N0cm9uZz48YnIvPlNVUklOQU1FICAtICA8c3Ryb25nPlNSPC9zdHJvbmc+PGJyLz5TVkFMQkFSRCBBTkQgSkFOIE1BWUVOICAtICA8c3Ryb25nPlNKPC9zdHJvbmc+PGJyLz5TV0FaSUxBTkQgIC0gIDxzdHJvbmc+U1o8L3N0cm9uZz48YnIvPlNXRURFTiAgLSAgPHN0cm9uZz5TRTwvc3Ryb25nPjxici8+U1dJVFpFUkxBTkQgIC0gIDxzdHJvbmc+Q0g8L3N0cm9uZz48YnIvPlNZUklBTiBBUkFCIFJFUFVCTElDICAtICA8c3Ryb25nPlNZPC9zdHJvbmc+PGJyLz5UQUlXQU4sIFBST1ZJTkNFIE9GIENISU5BICAtICA8c3Ryb25nPlRXPC9zdHJvbmc+PGJyLz5UQUpJS0lTVEFOICAtICA8c3Ryb25nPlRKPC9zdHJvbmc+PGJyLz5UQU5aQU5JQSwgVU5JVEVEIFJFUFVCTElDIE9GICAtICA8c3Ryb25nPlRaPC9zdHJvbmc+PGJyLz5USEFJTEFORCAgLSAgPHN0cm9uZz5USDwvc3Ryb25nPjxici8+VElNT1ItTEVTVEUgIC0gIDxzdHJvbmc+VEw8L3N0cm9uZz48YnIvPlRPR08gIC0gIDxzdHJvbmc+VEc8L3N0cm9uZz48YnIvPlRPS0VMQVUgIC0gIDxzdHJvbmc+VEs8L3N0cm9uZz48YnIvPlRPTkdBICAtICA8c3Ryb25nPlRPPC9zdHJvbmc+PGJyLz5UUklOSURBRCBBTkQgVE9CQUdPICAtICA8c3Ryb25nPlRUPC9zdHJvbmc+PGJyLz5UVU5JU0lBICAtICA8c3Ryb25nPlROPC9zdHJvbmc+PGJyLz5UVVJLRVkgIC0gIDxzdHJvbmc+VFI8L3N0cm9uZz48YnIvPlRVUktNRU5JU1RBTiAgLSAgPHN0cm9uZz5UTTwvc3Ryb25nPjxici8+VFVSS1MgQU5EIENBSUNPUyBJU0xBTkRTICAtICA8c3Ryb25nPlRDPC9zdHJvbmc+PGJyLz5UVVZBTFUgIC0gIDxzdHJvbmc+VFY8L3N0cm9uZz48YnIvPlVHQU5EQSAgLSAgPHN0cm9uZz5VRzwvc3Ryb25nPjxici8+VUtSQUlORSAgLSAgPHN0cm9uZz5VQTwvc3Ryb25nPjxici8+VU5JVEVEIEFSQUIgRU1JUkFURVMgIC0gIDxzdHJvbmc+QUU8L3N0cm9uZz48YnIvPlVOSVRFRCBLSU5HRE9NICAtICA8c3Ryb25nPkdCPC9zdHJvbmc+PGJyLz5VTklURUQgU1RBVEVTICAtICA8c3Ryb25nPlVTPC9zdHJvbmc+PGJyLz5VTklURUQgU1RBVEVTIE1JTk9SIE9VVExZSU5HIElTTEFORFMgIC0gIDxzdHJvbmc+VU08L3N0cm9uZz48YnIvPlVSVUdVQVkgIC0gIDxzdHJvbmc+VVk8L3N0cm9uZz48YnIvPlVaQkVLSVNUQU4gIC0gIDxzdHJvbmc+VVo8L3N0cm9uZz48YnIvPlZBTlVBVFUgIC0gIDxzdHJvbmc+VlU8L3N0cm9uZz48YnIvPlZFTkVaVUVMQSAgLSAgPHN0cm9uZz5WRTwvc3Ryb25nPjxici8+VklFVCBOQU0gIC0gIDxzdHJvbmc+Vk48L3N0cm9uZz48YnIvPlZJUkdJTiBJU0xBTkRTLCBCUklUSVNIICAtICA8c3Ryb25nPlZHPC9zdHJvbmc+PGJyLz5WSVJHSU4gSVNMQU5EUywgVS5TLiAgLSAgPHN0cm9uZz5WSTwvc3Ryb25nPjxici8+V0FMTElTIEFORCBGVVRVTkEgIC0gIDxzdHJvbmc+V0Y8L3N0cm9uZz48YnIvPldFU1RFUk4gU0FIQVJBICAtICA8c3Ryb25nPkVIPC9zdHJvbmc+PGJyLz5ZRU1FTiAgLSAgPHN0cm9uZz5ZRTwvc3Ryb25nPjxici8+WkFNQklBICAtICA8c3Ryb25nPlpNPC9zdHJvbmc+PGJyLz5aSU1CQUJXRSAgLSAgPHN0cm9uZz5aVzwvc3Ryb25nPjxici8+DQo8L2Rpdj4NCjxoMz5TdXBwb3J0PC9oMz4NCjxoND5TY3JlZW5jYXN0cyBmb3IgZXh0cmEgaGVscCB3aWxsIGZhbGxvdy0tLSBvbiB0aGUgVE9ETzwvaDQ+DQo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+DQo8dWw+DQo8bGk+Rm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIG1vZHVsZSBvciB0byBmaWxlIGEgYnVnIHJlcG9ydCB2aXNpdCA8YSBocmVmPSJodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL3BwYm0iPnRoZSBDTVMgRm9yZ2U8L2E+LjwvbGk+DQo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+DQo8L3VsPg0KDQo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4NCjxwPkNvcHlyaWdodCAmY29weTsgMjAwOSwgamVyZW15QmFzcyAmbHQ7PGEgaHJlZj0iaHR0cDovL2NvcmJlbnNwcm9kdWN0cy5jb20iPmNvcmJlbnNwcm9kdWN0cy5jb208L2E+Jmd0OyBBbGwgUmlnaHRzIEFyZSBSZXNlcnZlZC48L3A+DQo8cD5UaGlzIG1vZHVsZSBoYXMgYmVlbiByZWxlYXNlZCB1bmRlciB0aGUgPGEgaHJlZj0iaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2xpY2Vuc2VzLmh0bWwjR1BMIj5HTlUgUHVibGljIExpY2Vuc2U8L2E+LiBZb3UgbXVzdCBhZ3JlZSB0byB0aGlzIGxpY2Vuc2UgYmVmb3JlIHVzaW5nIHRoZSBtb2R1bGUuPC9wPg0KPC9kaXYgPjxiIGNsYXNzPSJyYm90dG9tIj48YiBjbGFzcz0icjQiPjwvYj48YiBjbGFzcz0icjMiPjwvYj4gPGIgY2xhc3M9InIyIj48L2I+IDxiIGNsYXNzPSJyMSI+PC9iPjwvYj4NCg0KPC9kaXY+DQonOw0KPz4NCg==]]></data>
	</file>
	<file>
	  <filename>/lang/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCmlmICghaXNzZXQoJGdDbXMpKSBleGl0Ow0KDQoJLy8kZGIgPSYgJGdDbXMtPkdldERiKCk7DQovLwkNCg0KDQoJLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlDQoJJHRhYm9wdGFycmF5ID0gYXJyYXkoJ215c3FsJyA9PiAnVFlQRT1NeUlTQU0nKTsNCg0KCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsNCgkNCgkNCgkNCi8vCSAgICAkQnRuQXJyYXkgPSBhcnJheSgNCi8vICAgICAgICdCTFNCdG4nICA9PiBhcnJheSgNCi8vICAgICAgICAgICAnUHJpY2UnID0+ICc1MC4wMCcsDQovLyAgICAgICAgICAgJ0J1dHRvbkltZycgPT4gJ2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2J1eW5vd0NDX0xHLmdpZicsDQovLyAgICAgICAgICAgJ2l0ZW1fbmFtZScgPT4gJ0JMU2NsYXNzJywNCi8vCQkgICAnQnRuVHlwZSc9PidfeGNsaWNrJw0KLy8gICAgICAgKSwNCi8vICAgICAgIA0KLy8gICAgICAgJ0NQUl9BRUQnID0+IGFycmF5KA0KLy8gICAgICAgICAgICdQcmljZScgPT4gJzUwLjAwJywNCi8vICAgICAgICAgICAnQnV0dG9uSW1nJyA9PiAnaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fYnV5bm93Q0NfTEcuZ2lmJywNCi8vICAgICAgICAgICAnaXRlbV9uYW1lJyA9PiAnQ1BSX0FFRGNsYXNzJywNCi8vCQkgICAnQnRuVHlwZSc9PidfeGNsaWNrJw0KLy8gICAgICAgKQ0KCQ0KCQ0KLy8vLw0KLy8gQ3JlYXQgYnRuIHRhYmxlDQovLy8vCQ0KCS8vIHRhYmxlIHNjaGVtYSBkZXNjcmlwdGlvbg0KCSRmbGRzID0gIg0KCQlJRCBJIEtFWSBBVVRPLA0KCQlCS1NldCBDKDI1NSkNCgkJIjsNCg0KDQoJLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLg0KCSRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0biIsDQoJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoJDQoJDQovLy8vDQovLyBDcmVhdCBidG4gdGFibGUNCi8vLy8JDQoJJGZsZHMgPSAiDQoJSUQgSSBLRVksDQoJYW1vdW50IEMoMjU1KSwNCglCdXR0b25JbWcgQygyNTUpLA0KCWl0ZW1fbmFtZSBDKDI1NSksDQoJQnRuVHlwZSBDKDI1NSksDQoJaXRlbV9udW1iZXIgQygyNTUpLA0KCXF1YW50aXR5IEMoMjU1KSwNCglVcGdyYWRlTUVTUyBDKDI1NSksDQoJVGhlQWN0aW9uIEMoMjU1KSwNCglUaGVQYXJhbXMgWA0KCSI7DQoNCgkvLyBjcmVhdGUgaXQuIFRoaXMgc2hvdWxkIGRvIGVycm9yIGNoZWNraW5nLCBidXQgSSdtIGEgbGF6eSBzb2QuDQoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsDQoJCQkkZmxkcywgJHRhYm9wdGFycmF5KTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoJDQoNCgkNCi8vDQovLwkvLyB3ZSByZWFsbHkgZG9uJ3QgbmVlZCBhIHNlcXVlbmNlIGZvciB0aGlzIG1vZHVsZS4NCi8vCS8vIGNyZWF0ZSBhIHNlcXVlbmNlDQovLwkvLyAkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3JhdGVfdGhpc19zZXEiKTsNCi8vCSRmZXVzZXJzID0gJiRnQ21zLT5tb2R1bGVzWydGcm9udEVuZFVzZXJzJ11bJ29iamVjdCddOyAgDQovLwkkZmV1R3JvdXAgPSAkZmV1c2Vycy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9ncm91cCcpOw0KLy8JLy8gY3JlYXRlIGRlZmF1bHQgcHJlZmVyZW5jZXMNCg0KJHN0YXJ0VmFsdWU9ICdrZCFpZjg0IWtjVG9wNlBTSzk0MzhqbDEhJzsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdGb3JtVmFsdWUnLCAkc3RhcnRWYWx1ZSk7DQoJDQokc3RhcnRLZXkgPSAnMzY1ZG9ja3QzS3NvdG1kJzsNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdGb3JtS2V5JywgJHN0YXJ0S2V5KTsJDQoNCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJfaW1hZ2UnLCAnJyk7DQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyYmFja19jb2xvcicsICdGRkZGRkYnKTsJDQoNCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdSZWRpcmVjdFVSTCcsICcnKTsJDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FuY2VsX3JldHVybicsICcnKTsJDQoNCg0KDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsJywgJycpOwkNCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2J1c2luZXNzTmFtZScsICcnKTsJDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnU0FOREJPWF9idXNpbmVzc05hbWUnLCAnJyk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnU0FOREJPWF9wZXJzb25hbE5hbWUnLCAnJyk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnU0FOREJPWF9idXNpbmVzc1BBU1MnLCAnJyk7DQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnU0FOREJPWF9wZXJzb25hbFBBU1MnLCAnJyk7DQoNCg0KDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbm9fc2hpcHBpbmcnLCAnMCcpOwkNCg0KDQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnbm90aWZ5X3VybCcsICcnKTsNCiANCg0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ0xhbmcnLCdlbicpOw0KDQoNCg0KDQoNCg0KDQovLwkNCi8vCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdCb29raWVsYWNrc00nLCAkdGhpcy0+TGFuZygnQk9PS0lFX2xhY2tzX21lc3NhZ2UnKSk7DQovLwkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnQm9va2llbGFja3NUJywgJHRoaXMtPkxhbmcoJ0JPT0tJRV9sYWNrc190aXRsZScpKTsNCi8vCSAgIA0KLy8JJHRoaXMtPlNldFByZWZlcmVuY2UoJ0Jvb2tlcmRlbmllZE0nLCAkdGhpcy0+TGFuZygnQk9PS0VSX2RlbmllZF9tZXNzYWdlJykpOw0KLy8JJHRoaXMtPlNldFByZWZlcmVuY2UoJ0Jvb2tlcmRlbmllZFQnLCAkdGhpcy0+TGFuZygnQk9PS0VSX2RlbmllZF90aXRsZScpKTsNCi8vDQovLwkvLyBhdHRhY2ggRXZlbnRIYW5kbGVyDQovLwkvLyBmb3IgY2xlYW51cCBhbmQgY3JlYXRpb24gVE9ETw0KLy8JJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uQ3JlYXRlVXNlcicpOw0KLy8JJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uRGVsZXRlVXNlcicpOw0KLy8JJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uVXBkYXRlVXNlcicpOw0KLy8JJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uRXhwaXJlVXNlcicpOw0KLy8JDQovLwkvLyB3aWxsIGJlIHRvIGFsZXJ0IFVzZXIgb2YgYm9va2luZ3MgVE9ETw0KLy8JJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uTG9naW4nKTsNCi8vCSR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkxvZ291dCcpOw0KLy8JDQovLwkNCi8vLy8gdGVtcGxhdGVzIFRPRE8JDQovLy8vCSRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfYm9va2luZ19jYWxlbmRhcl90ZW1wbGF0ZS50cGwnKTsNCi8vLy9pZiggZmlsZV9leGlzdHMoJGZuKSApDQovLy8vew0KLy8vLyAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCi8vLy8gIA0KLy8vLyAgJENHQ2FsZW5kYXIgPSAmJGdDbXMtPm1vZHVsZXNbJ0NHQ2FsZW5kYXInXVsnb2JqZWN0J107DQovLy8vICAkQ0dDYWxlbmRhci0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfTkVXQ0FMRU5EQVJfVEVNUExBVEUsJHRlbXBsYXRlKTsNCi8vLy8gICAgJENHQ2FsZW5kYXItPlNldFRlbXBsYXRlKCdjYWxlbmRhcl9ib29raW5nREFZcycsJHRlbXBsYXRlKTsNCi8vLy8gICRDR0NhbGVuZGFyLT5TZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ERkxUQ0FMRU5EQVJfVEVNUExBVEUsJ2Jvb2tpbmdEQVlzJyk7DQovLy8vfQ0KLy8NCi8vLy8gTGlzdCBUZW1wbGF0ZXMNCi8vLy8kZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2Jvb2tpbmdfbGlzdF90ZW1wbGF0ZS50cGwnKTsNCi8vLy9pZiggZmlsZV9leGlzdHMoJGZuKSApDQovLy8vew0KLy8vLyAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsNCi8vLy8gICRDR0NhbGVuZGFyID0gJiRnQ21zLT5tb2R1bGVzWydDR0NhbGVuZGFyJ11bJ29iamVjdCddOw0KLy8vLyAgJENHQ2FsZW5kYXItPlNldFByZWZlcmVuY2UoQ0dDQUxFTkRBUl9QUkVGX05FV0xJU1RfVEVNUExBVEUsJHRlbXBsYXRlKTsNCi8vLy8gICRDR0NhbGVuZGFyLT5TZXRUZW1wbGF0ZSgnbGlzdF9ib29raW5nVGltZXMnLCR0ZW1wbGF0ZSk7DQovLy8vICAkQ0dDYWxlbmRhci0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVExJU1RfVEVNUExBVEUsJ2Jvb2tpbmdUaW1lcycpOw0KLy8vL30NCi8vDQovLw0KLy8vLy8vIFVEVCBUZW1wbGF0ZXMgIFRPRE8gcmVscGFjZSB3aXRoIFVEVA0KLy8vLyRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfVVJMaGVyZV9VRFQudHBsJyk7DQovLy8vICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KLy8vLyAgCQlnbG9iYWwgJGdDbXM7DQovLy8vCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7DQovLy8vICAkcXVlcnkyID0gIklOU0VSVCBJTlRPICIuDQovLy8vICAgIGNtc19kYl9wcmVmaXgoKS4idXNlcnBsdWdpbnMgKHVzZXJwbHVnaW5fbmFtZSwgY29kZSwgY3JlYXRlX2RhdGUsIG1vZGlmaWVkX2RhdGUpIFZBTFVFUyAoVVJMaGVyZSwiLiR0ZW1wbGF0ZS4iLCIuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLiIsIi4kZGItPkRCVGltZVN0YW1wKHRpbWUoKSkuIikiOw0KLy8vLyRkYi0+RXhlY3V0ZSgkcXVlcnkyKTsNCi8vDQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCdVRFQnLCdvcmlnX1BQQk1fRXhhbXBsZV9FbWFpbF9VRFQudHBsJyk7DQppZiggZmlsZV9leGlzdHMoJGZuKSApew0KICAkdGVtcGxhdGUgPSBmaWxlX2dldF9jb250ZW50cygkZm4pOw0KICAkdXNlcnRhZ29wcyA9JiAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsNCiAgJHVzZXJ0YWdvcHMtPlNldFVzZXJUYWcoJ1BQQk1fRXhhbXBsZV9FbWFpbCcsICR0ZW1wbGF0ZSk7DQp9DQoNCg0KCSRhbW91bnQ9Jyc7DQoJJEJ1dHRvbkltZz0naHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fYnV5bm93Q0NfTEcuZ2lmJzsNCgkkaXRlbV9uYW1lPSdEb25hdGUnOw0KCSRCdG5UeXBlPSdfZG9uYXRpb25zJzsNCgkkaXRlbV9udW1iZXI9Jyc7DQoJJHF1YW50aXR5PScnOw0KCSRVcGdyYWRlTUVTUz0nWW91IGhhdmUgbWFkZSBhIGRvbmF0aW9uLi4uIFRoYW5rIHlvdSc7DQoJJFRoZUFjdGlvbj0nUFBCTV9FeGFtcGxlX0VtYWlsJzsNCgkkVGhlUGFyYW1zPScnOw0KCQ0KCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuIFNFVCBCS1NldD0nQXV0aG9yRG9uYXRlJyI7DQoJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCgkJCQkJCQkJCSAgDQoJJHF1ZXJ5ID0gIklOU0VSVCBJTlRPICIuY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIChJRCwgYW1vdW50LCBCdXR0b25JbWcsIGl0ZW1fbmFtZSwgQnRuVHlwZSwgaXRlbV9udW1iZXIsIHF1YW50aXR5LCBVcGdyYWRlTUVTUywgVGhlQWN0aW9uLCBUaGVQYXJhbXMpIFZBTFVFUyAoIExBU1RfSU5TRVJUX0lEKCksJyIuJGFtb3VudC4iJywnIi4kQnV0dG9uSW1nLiInLCciLiRpdGVtX25hbWUuIicsJyIuJEJ0blR5cGUuIicsJyIuJGl0ZW1fbnVtYmVyLiInLCciLiRxdWFudGl0eS4iJywnIi4kVXBncmFkZU1FU1MuIicsJyIuJFRoZUFjdGlvbi4iJywnIi4kVGhlUGFyYW1zLiInKSI7DQoJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCg0KDQoNCi8vaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2FjdGlvbi5tYXRjaEZFVW5DQUwucGhwJyk7CQ0KCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8qDQogICAgRm9yIHNlcGFyYXRlZCBtZXRob2RzLCB5b3UnbGwgYWx3YXlzIHdhbnQgdG8gc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nDQogICAgbGluZSB3aGljaCBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCBtZXRob2Qgd2FzIGNhbGxlZCBmcm9tIHRoZSBtb2R1bGUNCiAgICBBUEksIGFuZCB0aGF0IGV2ZXJ5dGhpbmcncyBzYWZlIHRvIGNvbnRpbnVlOg0KKi8gDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KCSRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsNCi8vCQ0KCS8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGUNCgkkZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsNCgkkc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0biIgKTsNCgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7DQoJDQoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiApOw0KCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsNCg0KCS8vIHJlbW92ZSB0aGUgc2VxdWVuY2UNCgkvLyAkZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmF0ZV90aGlzX3NlcSIgKTsNCi8vCQ0KLy8JDQovLwkNCi8vCS8vIHJlbW92ZSB0aGUgcHJlZmVyZW5jZXMNCi8vCSR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCJib29raWUiKTsNCg0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ0Zvcm1WYWx1ZScpOw0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ0Zvcm1LZXknKTsJDQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnY3BwX2hlYWRlcl9pbWFnZScpOw0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2NwcF9oZWFkZXJiYWNrX2NvbG9yJyk7CQ0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ1JlZGlyZWN0VVJMJyk7CQ0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2NhbmNlbF9yZXR1cm4nKTsJDQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnaW1hZ2VfdXJsJyk7CQ0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ2J1c2luZXNzTmFtZScpOwkNCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdTQU5EQk9YX2J1c2luZXNzTmFtZScpOw0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ1NBTkRCT1hfcGVyc29uYWxOYW1lJyk7DQokdGhpcy0+UmVtb3ZlUHJlZmVyZW5jZSgnU0FOREJPWF9idXNpbmVzc1BBU1MnKTsNCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdTQU5EQk9YX3BlcnNvbmFsUEFTUycpOw0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ25vX3NoaXBwaW5nJyk7CQ0KJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoJ25vdGlmeV91cmwnKTsNCiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCdMYW5nJyk7DQovLwkNCi8vCS8vIFJlbW92ZSBhbGwgZXZlbnQgaGFuZGxlcnMNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkNyZWF0ZVVzZXInKTsNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkRlbGV0ZVVzZXInKTsNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPblVwZGF0ZVVzZXInKTsNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkV4cGlyZVVzZXInKTsNCi8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkxvZ2luJyk7DQovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dvdXQnKTsNCi8vCQ0KCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCi8qDQogICAgRm9yIHNlcGFyYXRlZCBtZXRob2RzLCB5b3UnbGwgYWx3YXlzIHdhbnQgdG8gc3RhcnQgd2l0aCB0aGUgZm9sbG93aW5nDQogICAgbGluZSB3aGljaCBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCBtZXRob2Qgd2FzIGNhbGxlZCBmcm9tIHRoZSBtb2R1bGUNCiAgICBBUEksIGFuZCB0aGF0IGV2ZXJ5dGhpbmcncyBzYWZlIHRvIGNvbnRpbnVlOg0KKi8gDQppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsNCg0KDQovKiBBZnRlciB0aGlzLCB0aGUgY29kZSBpcyBpZGVudGljYWwgdG8gdGhlIGNvZGUgdGhhdCB3b3VsZCBvdGhlcndpc2UgYmUNCiAgICB3cmFwcGVkIGluIHRoZSBVcGdyYWRlKCkgbWV0aG9kIGluIHRoZSBtb2R1bGUgYm9keS4NCiovDQoNCgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOw0KCQlzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikNCgkJew0KCQkJY2FzZSAiMC4xIjoNCgkJCSAgICAgYnJlYWs7DQoJCX0NCgkJDQoJCS8vIHB1dCBtZW50aW9uIGludG8gdGhlIGFkbWluIGxvZw0KCQkkdGhpcy0+QXVkaXQoIDAsICR0aGlzLT5MYW5nKCdmcmllbmRseW5hbWUnKSwgJHRoaXMtPkxhbmcoJ3VwZ3JhZGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7DQoNCj8+]]></data>
	</file>
	<file>
	  <filename>/PayPalButtonMaker.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHANCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIE1vZHVsZTogUGF5UGFsQnV0dG9uTWFrZXIgLSBQYXlQYWwgQnV0dG9uIENyZWF0b3IgYW5kIE1hbmFnZXIgDQojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIENNUyAtIENNUyBNYWRlIFNpbXBsZSBpcyAoYykgMjAwNSBieSBUZWQgS3VscCAod2lzaHlAY21zbWFkZXNpbXBsZS5vcmcpDQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnDQojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9QYXlQYWxCdXR0b25NYWtlci8NCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5DQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQojDQojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlDQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQojIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBDQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCg0KY2xhc3MgUGF5UGFsQnV0dG9uTWFrZXIgZXh0ZW5kcyBDTVNNb2R1bGUNCnsNCg0KICBmdW5jdGlvbiBHZXROYW1lKCkNCiAgew0KICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMpOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkNCiAgew0KICAgIHJldHVybiAnMC4yJzsNCiAgfQ0KDQogIGZ1bmN0aW9uIEdldEhlbHAoKQ0KICB7DQogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdoZWxwJyk7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRBdXRob3IoKQ0KICB7DQogICAgcmV0dXJuICdqZXJlbXlCYXNzJzsNCiAgfQ0KDQogIGZ1bmN0aW9uIEdldEF1dGhvckVtYWlsKCkNCiAgew0KICAgIHJldHVybiAnamVyZW15YmFzc0BjYWJsZW9uZS5uZXQnOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+TGFuZygnY2hhbmdlbG9nJyk7DQogIH0NCg0KICBmdW5jdGlvbiBJc1BsdWdpbk1vZHVsZSgpDQogIHsNCiAgICByZXR1cm4gdHJ1ZTsNCiAgfQ0KDQogIGZ1bmN0aW9uIEhhc0FkbWluKCkNCiAgew0KICAgIHJldHVybiB0cnVlOw0KICB9DQoNCiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkNCiAgew0KICAgIHJldHVybiAnZXh0ZW5zaW9ucyc7DQogIH0NCg0KICBmdW5jdGlvbiBHZXRBZG1pbkRlc2NyaXB0aW9uKCkNCiAgew0KICAgIHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIFZpc2libGVUb0FkbWluVXNlcigpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJyk7DQogIH0NCg0KICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQ0KICB7DQogICAgcmV0dXJuIGFycmF5KCk7DQogIH0NCg0KICBmdW5jdGlvbiBNaW5pbXVtQ01TVmVyc2lvbigpDQogIHsNCiAgICByZXR1cm4gIjEuNS40IjsNCiAgfQ0KDQogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3RpbnN0YWxsJyk7DQogIH0NCg0KICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpDQogIHsNCiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ3Bvc3R1bmluc3RhbGwnKTsNCiAgfQ0KDQogIGZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKQ0KICB7DQogICAgcmV0dXJuIGZhbHNlOy8vJHRoaXMtPkxhbmcoJ3JlYWxseV91bmluc3RhbGwnKTsNCiAgfQ0KZnVuY3Rpb24gRmlyZURlYnVnKCRjb21tYW5kLCRtZXNzYWdlLCR2YXJpYWJsZXM9YXJyYXkoKSkgew0KICAkZmlyZXBocG1vZHVsZT0kdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0ZpcmVQSFBEZWJ1ZycpOw0KICBpZiAoJGZpcmVwaHBtb2R1bGUpIHsNCiAgICAvL01vZHVsZSBmb3VuZA0KICAgICRmaXJlcGhwbW9kdWxlLT5TZXRNb2R1bGVOYW1lKCR0aGlzLT5HZXROYW1lKCkpOw0KICAgICRmaXJlcGhwbW9kdWxlLT5Db21tYW5kKCRjb21tYW5kLCAkbWVzc2FnZSwgJHZhcmlhYmxlcyk7DQogIH0gLy9lbHNlIE1vZHVsZSBub3QgZm91bmQNCn0vLyR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCRrKTsJDQoNCiAgLyoqDQogICAqIF9Eb0FkZEV2ZW50KCRwYXJhbXMpDQogICAqLw0KDQoNCi8vZnVuY3Rpb24gQWRkVVNFUnRGb3JtKCRpZCwgJHBhcmFtcywgJHJldHVybmlkKXsNCi8vCWluY2x1ZGUoZGlybmFtZShfX0ZJTEVfXykuJy9mdW5jdGlvbi5BZGRVU0VSdEZvcm0ucGhwJyk7DQovL30NCg0KDQoNCg0KICANCiAgLyoqDQogICAqIERpc3BsYXkgYSBzaW1wbGUgbWVzc2FnZQ0KICAgKi8NCmZ1bmN0aW9uIERpc3BsYXlNZXNzYWdlKCRpZCwgJiRwYXJhbXMsICRyZXR1cm5pZCwgJHRpdGxlLCAkbWVzc2FnZSl7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0aXRsZScsICR0aXRsZSk7DQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgJG1lc3NhZ2UpOw0KCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnbWVzc2FnZS50cGwnKTsNCn0NCiAgDQogIC8qKg0KICAgKiBDaGVjayBpZiBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBwb3N0DQogICAqLw0KZnVuY3Rpb24gUmVhbFVSTCgpew0KZ2xvYmFsICRnQ21zOw0KCSAkdXJsQkFTRSA9ICJodHRwOi8vIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ107DQoJCWlmICghZW1wdHkoJF9TRVJWRVJbIlFVRVJZX1NUUklORyJdKSkNCgkJJHVybEJBU0UgLj0gIj8iLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXTsNCgkJaWYgKGlzc2V0KCRnQ21zLT5jb25maWdbJ2Fzc3VtZV9tb2RfcmV3cml0ZSddKSAmJiAoJGdDbXMtPmNvbmZpZ1snYXNzdW1lX21vZF9yZXdyaXRlJ109PXRydWUpIHx8IChpc3NldCgkZ0Ntcy0+Y29uZmlnWyd1cmxfcmV3cml0aW5nJ10pJiYgJGdDbXMtPmNvbmZpZ1sndXJsX3Jld3JpdGluZyddPT0nbW9kX3Jld3JpdGUnKSkgew0KCQkJJHVybHMgPSBzdHJfcmVwbGFjZSgiaW5kZXgucGhwP3BhZ2U9IiwgIiIsICR1cmxCQVNFKTsNCgkJCSR1cmxzID0gc3RyX3JlcGxhY2UoImluZGV4LnBocCIsICIiLCAkdXJscyk7DQoJCX1lbHNlew0KCQkJJHVybHMgPSAkdXJsQkFTRTsNCgkJfQ0KCXJldHVybiAkdXJsczsNCn0NCg0KICBmdW5jdGlvbiBSZWRpcmVjdFVSTCgkc2VjdXJlUmVkaXJlY3Qpew0KICBnbG9iYWwgJGdDbXM7DQoJJFJlZGlyZWN0VVJMPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdSZWRpcmVjdFVSTCcsJycpOw0KCWlmKCRSZWRpcmVjdFVSTCE9Jycpew0KCQlpZiAoaXNzZXQoJGdDbXMtPmNvbmZpZ1snYXNzdW1lX21vZF9yZXdyaXRlJ10pICYmICgkZ0Ntcy0+Y29uZmlnWydhc3N1bWVfbW9kX3Jld3JpdGUnXT09dHJ1ZSkgfHwgKGlzc2V0KCRnQ21zLT5jb25maWdbJ3VybF9yZXdyaXRpbmcnXSkmJiAkZ0Ntcy0+Y29uZmlnWyd1cmxfcmV3cml0aW5nJ109PSdtb2RfcmV3cml0ZScpKSB7DQoJCQkkdXJscyA9ICRSZWRpcmVjdFVSTDsNCgkJCSR1cmxzIC49Ij8iLiRzZWN1cmVSZWRpcmVjdDsNCgkJfWVsc2V7DQoJCQkkdXJscyA9ICRSZWRpcmVjdFVSTDsNCgkJCSR1cmxzIC49IiYiLiRzZWN1cmVSZWRpcmVjdDsNCgkJfQ0KCX1lbHNlew0KCSAkdXJsQkFTRSA9ICJodHRwOi8vIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ107DQoJCWlmICghZW1wdHkoJF9TRVJWRVJbIlFVRVJZX1NUUklORyJdKSkNCgkJJHVybEJBU0UgLj0gIj8iLiRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXTsNCgkJaWYgKGlzc2V0KCRnQ21zLT5jb25maWdbJ2Fzc3VtZV9tb2RfcmV3cml0ZSddKSAmJiAoJGdDbXMtPmNvbmZpZ1snYXNzdW1lX21vZF9yZXdyaXRlJ109PXRydWUpIHx8IChpc3NldCgkZ0Ntcy0+Y29uZmlnWyd1cmxfcmV3cml0aW5nJ10pJiYgJGdDbXMtPmNvbmZpZ1sndXJsX3Jld3JpdGluZyddPT0nbW9kX3Jld3JpdGUnKSkgew0KCQkJJHVybHMgPSBzdHJfcmVwbGFjZSgiaW5kZXgucGhwP3BhZ2U9IiwgIiIsICR1cmxCQVNFKTsNCgkJCSR1cmxzID0gc3RyX3JlcGxhY2UoImluZGV4LnBocCIsICIiLCAkdXJscyk7DQoJCQkkdXJscyAuPSI/Ii4kc2VjdXJlUmVkaXJlY3Q7DQoJCX1lbHNlew0KCQkJJHVybHMgPSAkdXJsQkFTRTsNCgkJCSR1cmxzIC49IiYiLiRzZWN1cmVSZWRpcmVjdDsNCgkJfQ0KCX0NCglyZXR1cm4gJHVybHM7DQp9DQoNCiAgZnVuY3Rpb24gbXlSZWRpcmVjdFRvVGFiKCAkaWQsICR0YWIsICRwYXJhbXMgPSAnJyApDQogIHsNCiAgICAkcGFybXMgPSBhcnJheSgpOw0KICAgIGlmKCBpc19hcnJheSggJHBhcmFtcyApICkNCiAgICAgIHsNCgkkcGFybXMgPSAkcGFyYW1zOw0KICAgICAgfQ0KICAgICRwYXJtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAkdGFiICk7DQogICAgJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRwYXJtcyApOw0KICB9DQoNCiAgZnVuY3Rpb24gbXlSZWRpcmVjdCggJGlkLCAkYWN0aW9uLCAkcGFyYW1zID0gJycgKQ0KICB7DQogICAgdW5zZXQoICRwYXJhbXNbJ2FjdGlvbiddICk7DQogICAgJHRoaXMtPlJlZGlyZWN0KCAkaWQsICRhY3Rpb24sICcnLCAkcGFyYW1zICk7DQogIH0NCg0KDQoNCg0KZnVuY3Rpb24gTGlzdEJUTigpew0KDQoJJGRiID0mICR0aGlzLT5HZXREYigpOw0KDQoJJHJldHJlc3VsdCA9IGFycmF5KCk7DQoJJHJlc3VsdHMgPSBhcnJheSgpOwkNCg0KCSRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG4gTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG5fT1BUIE9OICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG4uSUQgPSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX1BQQk1fQnRuX09QVC5JRCc7DQoJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsNCg0KCXdoaWxlICgkcmVzdWx0ICYmICEkcmVzdWx0LT5FT0YpDQoJew0KDQoJCSRkYUtleT0kcmVzdWx0LT5maWVsZHNbJ0JLU2V0J107DQoJCSRyZXN1bHRzWydhbW91bnQnXT0gJHJlc3VsdC0+ZmllbGRzWydhbW91bnQnXTsNCgkJJHJlc3VsdHNbJ0J1dHRvbkltZyddPSAkcmVzdWx0LT5maWVsZHNbJ0J1dHRvbkltZyddOw0KCQkkcmVzdWx0c1snaXRlbV9uYW1lJ109ICRyZXN1bHQtPmZpZWxkc1snaXRlbV9uYW1lJ107DQoJCSRyZXN1bHRzWydCdG5UeXBlJ109ICRyZXN1bHQtPmZpZWxkc1snQnRuVHlwZSddOw0KCQkkcmVzdWx0c1snaXRlbV9udW1iZXInXT0gJHJlc3VsdC0+ZmllbGRzWydpdGVtX251bWJlciddOw0KCQkkcmVzdWx0c1sncXVhbnRpdHknXT0gJHJlc3VsdC0+ZmllbGRzWydxdWFudGl0eSddOw0KCQkkcmVzdWx0c1snVXBncmFkZU1FU1MnXT0gJHJlc3VsdC0+ZmllbGRzWydVcGdyYWRlTUVTUyddOw0KCQkkcmVzdWx0c1snVGhlQWN0aW9uJ109ICRyZXN1bHQtPmZpZWxkc1snVGhlQWN0aW9uJ107DQoJCSRyZXN1bHRzWydUaGVQYXJhbXMnXT0gJHJlc3VsdC0+ZmllbGRzWydUaGVQYXJhbXMnXTsNCgkJJHJldHJlc3VsdFskZGFLZXldID0gJHJlc3VsdHM7DQoJCSRyZXN1bHQtPk1vdmVOZXh0KCk7DQoJfQ0KDQoJcmV0dXJuICRyZXRyZXN1bHQ7DQoJfSANCg0KDQpmdW5jdGlvbiBMaXN0QUJUTigkQlROKXsNCgkkZGIgPSYgJHRoaXMtPkdldERiKCk7DQoNCgkkcmV0cmVzdWx0ID0gYXJyYXkoKTsNCgkkcmVzdWx0cyA9IGFycmF5KCk7CQ0KDQoJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0biBMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0bl9PUFQgT04gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0bi5JRCA9ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG5fT1BULklEJzsNCgkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnkpOw0KDQoJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRikNCgl7DQoNCgkJJGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snQktTZXQnXTsNCgkJJHJlc3VsdHNbJ2Ftb3VudCddPSAkcmVzdWx0LT5maWVsZHNbJ2Ftb3VudCddOw0KCQkkcmVzdWx0c1snQnV0dG9uSW1nJ109ICRyZXN1bHQtPmZpZWxkc1snQnV0dG9uSW1nJ107DQoJCSRyZXN1bHRzWydpdGVtX25hbWUnXT0gJHJlc3VsdC0+ZmllbGRzWydpdGVtX25hbWUnXTsNCgkJJHJlc3VsdHNbJ0J0blR5cGUnXT0gJHJlc3VsdC0+ZmllbGRzWydCdG5UeXBlJ107DQoJCSRyZXN1bHRzWydpdGVtX251bWJlciddPSAkcmVzdWx0LT5maWVsZHNbJ2l0ZW1fbnVtYmVyJ107DQoJCSRyZXN1bHRzWydxdWFudGl0eSddPSAkcmVzdWx0LT5maWVsZHNbJ3F1YW50aXR5J107DQoJCSRyZXN1bHRzWydVcGdyYWRlTUVTUyddPSAkcmVzdWx0LT5maWVsZHNbJ1VwZ3JhZGVNRVNTJ107DQoJCSRyZXN1bHRzWydUaGVBY3Rpb24nXT0gJHJlc3VsdC0+ZmllbGRzWydUaGVBY3Rpb24nXTsNCgkJJHJlc3VsdHNbJ1RoZVBhcmFtcyddPSAkcmVzdWx0LT5maWVsZHNbJ1RoZVBhcmFtcyddOw0KCQkkcmV0cmVzdWx0WyRkYUtleV0gPSAkcmVzdWx0czsNCgkJJHJlc3VsdC0+TW92ZU5leHQoKTsNCgl9DQoNCglyZXR1cm4gJHJldHJlc3VsdFskQlROXTsNCgl9IA0KDQoNCg0KDQoNCg0KDQoNCg0KZnVuY3Rpb24gX0FkbWluQ3JlYXRlVGVtcGxhdGVMaXN0KCAkaWQsICRyZXR1cm5pZCwgJHByZWZpeCwgJGRlZmF1bHR0ZW1wbGF0ZXByZWYsIA0KCQkJCSAgICAgJGFjdGl2ZV90YWIsICRkZWZhdWx0cHJlZm5hbWUsDQoJCQkJICAgICAkdGl0bGUpew0KCQkvLyB3ZSdyZSBnb25uYSBhbGxvdyBtdWx0aXBsZSB0ZW1wbGF0ZXMgaGVyZQ0KCQkvLyBidXQgd2UncmUgZ29ubmEgcHJlZml4IHRoZW0gYWxsIHdpdGggc29tZXRoaW5nDQoJCWdsb2JhbCAkZ0NtczsNCgkJDQoJCSRmYWxzZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnbWFrZSBkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOw0KCQkkdHJ1ZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnLCdkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOw0KCQkkYWxsZGJQcm9maWxlcyA9ICR0aGlzLT5MaXN0QlROKCk7DQoJCSRyb3dhcnJheSA9IGFycmF5KCk7DQoJCSRyb3djbGFzcyA9ICdyb3cxJzsNCgkJDQoJCQ0KCQkNCgkJZm9yZWFjaCgkYWxsZGJQcm9maWxlcyBhcyAka2V5ID0+ICRvbmVkYlByb2ZpbGUgKXsNCgkJCSRhbW91bnQ9ICRvbmVkYlByb2ZpbGVbJ2Ftb3VudCddOw0KCQkJJEJ1dHRvbkltZz0gJG9uZWRiUHJvZmlsZVsnQnV0dG9uSW1nJ107DQoJCQkkaXRlbV9uYW1lPSAkb25lZGJQcm9maWxlWydpdGVtX25hbWUnXTsNCgkJCSRCdG5UeXBlPSAkb25lZGJQcm9maWxlWydCdG5UeXBlJ107DQoJCQkkaXRlbV9udW1iZXI9ICRvbmVkYlByb2ZpbGVbJ2l0ZW1fbnVtYmVyJ107DQoJCQkkcXVhbnRpdHk9ICRvbmVkYlByb2ZpbGVbJ3F1YW50aXR5J107CQ0KCQkNCgkJJHJvdyA9IG5ldyBTdGRDbGFzcygpOw0KCQkkcm93LT5uYW1lID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwNCgkJCQkJCSRrZXksIGFycmF5KCdCS1NldCcgPT4gJGtleSwNCgkJCQkJCQkJJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLA0KCQkJCQkJCQknbW9kZSc9PidlZGl0JykpOw0KCQkkcm93LT5kZWZhdWx0ID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwNCgkJCQkJCSRpdGVtX25hbWUsIGFycmF5KCdCS1NldCcgPT4gJGtleSwNCgkJCQkJCQkJJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLA0KCQkJCQkJCQknbW9kZSc9PidlZGl0JykpOw0KCQkkcm93LT5CdG4gPSAka2V5OwkNCgkJDQoJCSRyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOw0KCQkkcm93LT5lZGl0bGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsDQoJCQkJCQkJJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT4NCgkJCQkJCQlEaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLA0KCQkJCQkJCQkgICR0aGlzLT5MYW5nICgnZWRpdCcpLCAnJywgJycsICdzeXN0ZW1pY29uJyksDQoJCQkJCQkJYXJyYXkgKCdCS1NldCcgPT4gJGtleSwNCgkJCQkJCQkgICAnYWN0aXZlX3RhYicgPT4gJGFjdGl2ZV90YWIsDQoJCQkJCQkJICAgJ21vZGUnPT4nZWRpdCcpKTsNCgkJDQoJCQ0KCQkJJHJvdy0+ZGVsZXRlbGluayA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdkZWxldGV0ZW1wbGF0ZScsICRyZXR1cm5pZCwNCgkJCQkJCQkgICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+DQoJCQkJCQkJICBEaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsDQoJCQkJCQkJCQkkdGhpcy0+TGFuZyAoJ2RlbGV0ZScpLCAnJywgJycsICdzeXN0ZW1pY29uJyksDQoJCQkJCQkJICBhcnJheSAoJ0JLU2V0JyA9PiAka2V5KSwNCgkJCQkJCQkgICR0aGlzLT5MYW5nICgnYXJleW91c3VyZScpKTsNCgkJDQoJCQ0KCQlhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOw0KCQkoJHJvd2NsYXNzID09ICJyb3cxIiA/ICRyb3djbGFzcyA9ICJyb3cyIiA6ICRyb3djbGFzcyA9ICJyb3cxIik7DQoJCSAgfQ0KCQkNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtcycsICRyb3dhcnJheSApOw0KCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25hbWVwcm9tcHQnLCAkdGhpcy0+TGFuZygncHJvbXB0X25hbWUnKSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZGVmYXVsdHByb21wdCcsICdJdGVtIE5hbWUgKFBheVBhbFwncyBOYW1lKScpOy8vJHRoaXMtPkxhbmcoJ3Byb21wdF9kZWZhdWx0JykNCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduZXd0ZW1wbGF0ZWxpbmsnLA0KCQkJCSAgJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwNCgkJCQkJCQkgJHRoaXMtPkxhbmcoJ3Byb21wdF9uZXdCdG4nKSwNCgkJCQkJCQkgYXJyYXkoJ3ByZWZpeCcgPT4gJHByZWZpeCwNCgkJCQkJCQkgICAnYWN0aXZlX3RhYicgPT4gJGFjdGl2ZV90YWIsDQoJCQkJCQkJICAgJ3RpdGxlJz0+JHRpdGxlLA0KCQkJCQkJCSAgICdtb2RlJyA9PiAnYWRkJywNCgkJCQkJCQkgICAnZGVmYXVsdHRlbXBsYXRlcHJlZicgPT4gJGRlZmF1bHR0ZW1wbGF0ZXByZWYNCgkJCQkJCQkgICApKSk7DQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsNCgkJZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0dGVtcGxhdGVzLnRwbCcpOw0KCX0NCiAgDQoNCg0KICANCiAgDQoJZnVuY3Rpb24gcG9zdF9pdCgkZGF0YXN0cmVhbSwgJHVybCkgeyANCgkJJHVybCA9IHByZWdfcmVwbGFjZSgiQF5odHRwOi8vQGkiLCAiIiwgJHVybCk7IA0KCQkkaG9zdCA9IHN1YnN0cigkdXJsLCAwLCBzdHJwb3MoJHVybCwgIi8iKSk7IA0KCQkkdXJpID0gc3Ryc3RyKCR1cmwsICIvIik7DQoJCSRyZXFib2R5ID0gIiI7IA0KCQlmb3JlYWNoKCRkYXRhc3RyZWFtIGFzICRrZXk9PiR2YWwpIHsgDQoJCWlmICghKCRyZXFib2R5PT0nJykpICRyZXFib2R5Lj0gIiYiOyANCgkJCSRyZXFib2R5Lj0gJGtleS4iPSIudXJsZW5jb2RlKCR2YWwpOyANCgkJfQ0KCQloZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vJGhvc3QkdXJpPyRyZXFib2R5Iik7IGRpZTsNCgkJcmV0dXJuICRyZXN1bHQ7IA0KCX0gDQogIA0KICANCiAgDQogIA0KICANCn0NCj8+DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_BNToptions.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kX3ByZWZzX3RpdGxlfTwvaDM+DQo8aHIvPg0KDQp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0NCnskZm9ybV9zdGFydH0NCg0KIA0KICAgICA8aDE+R2VuZXJhbCBCdXR0b24gT3B0aW9uPC9oMT4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRSZWRpcmVjdFVSTF9sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JFJlZGlyZWN0VVJMX2lucHV0fTwvcD48YnIvPg0KICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNhbmNlbF9yZXR1cm5fbGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjYW5jZWxfcmV0dXJuX2lucHV0fTwvcD4NCiAgICAgICAgDQogICAgICAgIA0KICAgICAgICA8YnIvPg0KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskbm9fc2hpcHBpbmdfbGFiZWx9OjwvcD4NCgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRub19zaGlwcGluZ19pbnB1dH08L3A+DQogICAgICAgIDxici8+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRub3RpZnlfdXJsX2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbm90aWZ5X3VybF9pbnB1dH08L3A+DQogICAgICAgIDxici8+DQoJPC9kaXY+ICAgDQogICA8aHIvPiAgIA0KICAgIA0KICAgIA0KICAgIA0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZm9ybV9zdWJtaXR9PC9wPg0KCTwvZGl2Pg0KDQogICAgIAkNCnskZm9ybV9lbmR9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_email.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kX3ByZWZzX3RpdGxlfTwvaDM+DQoNCntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQ0KeyRmb3JtX3N0YXJ0fQ0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsbG93X2d1ZXN0X2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYWxsb3dfZ3Vlc3RfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRncm91cF9sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGdyb3VwX2lucHV0fTwvcD4NCgk8L2Rpdj4NCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskd3lzaXd5Z19sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHd5c2l3eWdfaW5wdXR9PC9wPg0KCTwvZGl2Pg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZvcm1fc3VibWl0fTwvcD4NCgk8L2Rpdj4NCnskZm9ybV9lbmR9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_options.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[DQo8aDM+eyRtb2RfcHJlZnNfdGl0bGV9PC9oMz4NCjxoci8+DQoNCntpZiAkbWVzc2FnZSE9Jyd9PHA+eyRtZXNzYWdlfTwvcD57L2lmfQ0KeyRmb3JtX3N0YXJ0fQ0KDQogICAgPGgxPlNlY3VyaXR5IE9wdGlvbnM8L2gxPg0KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGludGVybmFsX2xhYmVsfTo8L3A+DQogICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnRlcm5hbF9pbnB1dH08L3A+PGJyLz48YnIvPg0KCQk8cCBjbGFzcz0icGFnZXRleHQiPnskRm9ybVZhbHVlX2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskRm9ybVZhbHVlX2lucHV0fTwvcD48YnIvPjxici8+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRGb3JtS2V5X2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskRm9ybUtleV9pbnB1dH08L3A+DQogICAgICAgIDxici8+DQoJPC9kaXY+DQogICAgPGhyLz4NCiAgICA8aDE+UGF5UGFsIHRyYW5zYWN0aW9uIHBhZ2UgZGVzaWduPC9oMT4NCiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICAgIAk8cCBjbGFzcz0icGFnZXRleHQiPnskTGFuZ19sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JExhbmdfaW5wdXR9PC9wPjxici8+DQogICAgeyRjcHBfaGVhZGVyX2ltYWdlX291dHB1dH08YnIvPnskY3BwX2hlYWRlcl9pbWFnZV9jbGVhcn17JGNwcF9oZWFkZXJfaW1hZ2VfY2xlYXJfbGFibGV9DQoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjcHBfaGVhZGVyX2ltYWdlX2xhYmVsfTo8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY3BwX2hlYWRlcl9pbWFnZV9pbnB1dH08L3A+DQogICAgICAgIDxici8+DQogICAgICAgDQoNCiAgICAgICAgICAgeyRpbWFnZV91cmxfb3V0cHV0fTxici8+eyRpbWFnZV91cmxfY2xlYXJ9eyRpbWFnZV91cmxfY2xlYXJfbGFibGV9DQoNCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGltYWdlX3VybF9sYWJlbH06PC9wPg0KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGltYWdlX3VybF9pbnB1dH08L3A+DQogICAgICAgIDxici8+DQogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRjcHBfaGVhZGVyYmFja19jb2xvcl9sYWJlbH06PC9wPg0KICAgICAgICA8ZGl2IGNsYXNzPSJleHRlbmRIQU5ETEUgVHJhbnNsYXRlIj48aDQ+eyRDUF9sYWJlbH08L2g0PiA8c3Bhbj5bK108L3NwYW4+PC9kaXY+DQogICAgICAgIDxkaXYgY2xhc3M9Ik5leHRlbmQiPjxkaXYgY2xhc3M9IlRyYW5zbGF0ZUNvbiI+DQo8ZGl2IGlkPSJjb2xvcnBpY2tlciI+PC9kaXY+DQo8L2Rpdj48L2Rpdj4NCiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjcHBfaGVhZGVyYmFja19jb2xvcl9pbnB1dH08L3A+DQogICAgICAgIDxici8+DQoNCgk8L2Rpdj4NCiAgICANCiA8aHIvPiAgIA0KICAgIA0KICAgIDxoMT5QYXlQYWwgVXNlciBJbmZvcm1hdGlvbjwvaDE+DQogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRidXNpbmVzc05hbWVfbGFiZWx9OjwvcD4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYnVzaW5lc3NOYW1lX2lucHV0fTwvcD4NCiAgICAgICAgPGJyLz4NCiAgICAgICAgPGgyPlNBTkRCT1ggVXNlciBJbmZvcm1hdGlvbjwvaDI+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskU0FOREJPWF9idXNpbmVzc05hbWVfbGFiZWx9OjwvcD4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskU0FOREJPWF9idXNpbmVzc05hbWVfaW5wdXR9PC9wPg0KICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRTQU5EQk9YX2J1c2luZXNzUEFTU19sYWJlbH06PC9wPg0KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRTQU5EQk9YX2J1c2luZXNzUEFTU19pbnB1dH08L3A+DQogICAgICAgIDxici8+DQogICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskU0FOREJPWF9wZXJzb25hbE5hbWVfbGFiZWx9OjwvcD4NCiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskU0FOREJPWF9wZXJzb25hbE5hbWVfaW5wdXR9PC9wPg0KICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRTQU5EQk9YX3BlcnNvbmFsUEFTU19sYWJlbH06PC9wPg0KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRTQU5EQk9YX3BlcnNvbmFsUEFTU19pbnB1dH08L3A+DQogICAgICAgIDxici8+DQogICAgICAgIA0KICAgICAgICANCgk8L2Rpdj4NCg0KICAgIA0KICAgIA0KICAgIA0KICAgIA0KDQoJPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZm9ybV9zdWJtaXR9PC9wPg0KCTwvZGl2Pg0KDQogICAgIAkNCnskZm9ybV9lbmR9DQo=]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjxoMz57JHRpdGxlfTwvaDM+DQo8L2Rpdj4NCnskZm9ybXN0YXJ0fXskaGlkZGVufQ0KDQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij5CS1NldDo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskQktTZXR9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+YW1vdW50OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhbW91bnR9PC9wPg0KPC9kaXY+DQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij5CdXR0b25JbWc6PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JEJ1dHRvbkltZ308L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij5pdGVtX25hbWU6PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGl0ZW1fbmFtZX08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij5CdG5UeXBlOjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRCdG5UeXBlfTwvcD4NCjwvZGl2Pg0KDQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+aXRlbV9udW1iZXI6PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGl0ZW1fbnVtYmVyfTwvcD4NCjwvZGl2Pg0KDQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZXRleHQiPnF1YW50aXR5OjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRxdWFudGl0eX08L3A+DQo8L2Rpdj4NCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij5VcGdyYWRlTUVTUzo8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskVXBncmFkZU1FU1N9PC9wPg0KPC9kaXY+DQoNCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+DQogIDxwIGNsYXNzPSJwYWdldGV4dCI+VGhlQWN0aW9uOjwvcD4NCiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRUaGVBY3Rpb259PC9wPg0KPC9kaXY+DQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij5UaGVQYXJhbXM6PC9wPg0KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JFRoZVBhcmFtc308L3A+DQo8L2Rpdj4NCg0KDQoNCg0KDQoNCg0KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+DQogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskY2FuY2VsfTwvcD4NCjwvZGl2Pg0KeyRmb3JtZW5kfQ0KDQo=]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4NCjx0YWJsZSBjZWxsc3BhY2luZz0iMCIgY2xhc3M9InBhZ2V0YWJsZSI+DQogIDx0aGVhZD4NCiAgICA8dHI+DQogICAgICA8dGggPkFsaWFzPC90aD4NCiAgICAgIDx0aD57JGRlZmF1bHRwcm9tcHR9PC90aD4NCiAgICAgIDx0aD5TYW1wbGUgVGFnPC90aD4NCiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+DQogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPg0KICAgIDwvdHI+DQogIDwvdGhlYWQ+DQp7Zm9yZWFjaCBmcm9tPSRpdGVtcyBpdGVtPWVudHJ5fQ0KICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPg0KICAgICA8dGQ+eyRlbnRyeS0+bmFtZX08L3RkPg0KICAgICA8dGQ+eyRlbnRyeS0+ZGVmYXVsdH08L3RkPg0KICAgICA8dGQ+e2xkZWxpbX1jbXNfbW9kdWxlIG1vZHVsZT1QYXlQYWxCdXR0b25NYWtlciBNb2RlPSJkZWZhdWx0IiBCdG49InskZW50cnktPkJ0bn0ie3JkZWxpbX08L3RkPg0KICAgICA8dGQ+eyRlbnRyeS0+ZWRpdGxpbmt9PC90ZD4NCiAgICAgPHRkPnskZW50cnktPmRlbGV0ZWxpbmt9PC90ZD4NCiAgIDwvdHI+DQp7L2ZvcmVhY2h9DQo8L3RhYmxlPg0KPC9kaXY+DQo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPg0KICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPnskbmV3dGVtcGxhdGVsaW5rfTwvcD4NCjwvZGl2Pg0K]]></data>
	</file>
	<file>
	  <filename>/templates/Email_Userform_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0T0ZGfQ0KeyRmb3JtX2hpZGRlbk9GRn0NCnskZm9ybV9zdWJtaXRPRkZ9DQp7JGZvcm1fZW5kT0ZGfQ0KDQo=]]></data>
	</file>
	<file>
	  <filename>/templates/message.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4KPHA+eyRtZXNzYWdlfTwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_email_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBFTUFJTC0tPg==]]></data>
	</file>
	<file>
	  <filename>/templates/sample.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Ntc19tb2R1bGUgbW9kdWxlPVBheVBhbEJ1dHRvbk1ha2VyIE1vZGU9ImRlZmF1bHQiIEJ0bj0iTW9kdWxlRG9uYXRlIn0=]]></data>
	</file>
	<file>
	  <filename>/UDT/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/UDT/orig_PPBM_Example_Email_UDT.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8vLy8vLy8vDQovLy8vDQovLy8vIExldCdzIGdldCB0aG9zZSB2YXJzIGZyb20gdGhlIHBheXBhbCBwb3N0DQovLy8vDQovLy8vLy8vLw0KLy9wcmludF9yKCRfUE9TVCk7DQovL2VjaG8iPGJyLz48YnIvPiI7DQovL3ByaW50X3IoJF9HRVQpOw0KDQoNCmdsb2JhbCAkZ0NtczsNCgkkY2NNRT0gJF9QT1NUWydwYXllcl9lbWFpbCddOyAgLy8vIFVzZXINCiAgICAkZnJvbUVtYWlsPSJ3ZXJlIGlzIGl0IGZyb20iOyAgLy8vIE1vc3Qgd291bGQgd2FudCB0byBoYXZlICAtLUFERCBDTVNNYWlsZXIgQWRkcmVzcy0tDQogICAgJFVwbG9hZGVkdG9vID0gJ3lvdXIgZW1haWwgJzsgIC8vLyBBZGQgYW4gZW1haWwgdGhhdCB0aGUgbWFpbiBpcyBzdWJtaXRlZCB0by4NCiAgICANCiAgICAkc3VtbWFyeT0gJ1lvdSBoYXZlIHNpZ25lZCB1cCBmb3IgYSBvbmxpbmUgY2xhc3MnOw0KDQogICAgJGRlc2NyaXB0aW9uID0gJF9QT1NUWydpdGVtX25hbWUnXTsNCiAgICANCiAgICAkTWFpbGluZ0FERD0kX1BPU1RbJ2FkZHJlc3NfbmFtZSddLic8YnIvPic7DQogICAgJE1haWxpbmdBREQuPSRfUE9TVFsnYWRkcmVzc19zdHJlZXQnXS4nPGJyLz4nOw0KICAgICRNYWlsaW5nQURELj0kX1BPU1RbJ2FkZHJlc3NfY2l0eSddLicgJy4kX1BPU1RbJ2FkZHJlc3Nfc3RhdGUnXS4nLCAnLiRfUE9TVFsnYWRkcmVzc196aXAnXS4nPGJyLz4nOw0KICAgIA0KICAgICAgICAgICAgJENDdGV4dCA9ICI8aDM+V2VsY29tZSBGcm9tIFNKUk1DLm9yZzwvaDM+IjsNCiAgICAgICAgICAgICRUT3RleHQgPSAnPGgzPlRoZXJlIGlzIGEgTmV3IG9yZGVyIGZyb20gPGEgaHJlZj0ibWFpbHRvOicuJGNjTUUuJz9zdWJqZWN0PUZhbGxvdyBVcCBvbiBvbmxpbmUgQ2xhc3MiPicuJF9QT1NUWydmaXJzdF9uYW1lJ10uJyAnLiRfUE9TVFsnbGFzdF9uYW1lJ10uJzwvYT48L2gzPjxici8+PGg0PkNvbnRhY3QgaW5mb3JtYXRpb248L2g0PiBNYWlsaW5nOjxici8+Jy4kTWFpbGluZ0FERC4nPGJyLz5FbWFpbDo8YnIvPicuJGNjTUUuJyc7DQoNCiAgICAkYm9keXRleHQgPSAnPGJyLz4NCiAgICA8YnIvPjxici8+DQogICAgPGJyLz4NCiAgICA8YnIvPjxoMj5Zb3UgaGF2ZSBzaWduZWQgdXAgZm9yPC9oMj4nLiRkZXNjcmlwdGlvbi4nPGJyLz48YnIvPjxkaXYgYWxpZ249bGVmdD48c3Bhbj5UaGUgdXBsb2FkZXJzIElQIGlzICcuJGlwLic8YnIvPjxzcGFuIA0KICAgIHN0eWxlPSJGT05ULVdFSUdIVDogODAwOyBGT05ULVNJWkU6IDlweCI+DQogICAgPGhyLz4NCiAgICBDT05GSURFTlRJQUxJVFkgTk9USUNFOiBUaGlzIGVtYWlsIG1lc3NhZ2UgYW5kIGFueSBhY2NvbXBhbnlpbmcgZGF0YSBvciBmaWxlcyBpcyBjb25maWRlbnRpYWwgYW5kIG1heQ0KY29udGFpbiBwcml2aWxlZ2VkIGluZm9ybWF0aW9uIGludGVuZGVkIG9ubHkgZm9yIHRoZSBuYW1lZCByZWNpcGllbnQocykuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQocyksIHlvdSBhcmUgaGVyZWJ5IG5vdGlmaWVkIHRoYXQgdGhlIGRpc3NlbWluYXRpb24sIGRpc3RyaWJ1dGlvbiwgYW5kIG9yIGNvcHlpbmcgb2YgdGhpcyBtZXNzYWdlIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSByZWNlaXZlIHRoaXMgbWVzc2FnZSBpbiBlcnJvciwgb3IgYXJlIG5vdCB0aGUgbmFtZWQgcmVjaXBpZW50KHMpLCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgYXQgdGhlIGVtYWlsIGFkZHJlc3MgYWJvdmUsIGRlbGV0ZSB0aGlzIGVtYWlsIGZyb20geW91ciBjb21wdXRlciwgYW5kIGRlc3Ryb3kgYW55IGNvcGllcyBpbiBhbnkgZm9ybSBpbW1lZGlhdGVseS5SZWNlaXB0IGJ5IGFueW9uZSBvdGhlciB0aGFuIHRoZSBuYW1lZCByZWNpcGllbnQocykgaXMgbm90IGEgd2FpdmVyIG9mIGFueSBhdHRvcm5leS1jbGllbnQsIHdvcmsgcHJvZHVjdCwgb3Igb3RoZXIgYXBwbGljYWJsZSBwcml2aWxlZ2UuDQogDQogICAgPGJyLz48YnIvPg0KICAgIDxoci8+DQogICAgPC9zcGFuPjwvc3Bhbj48L2Rpdj4NCiAgICAnOw0KICAgIA0KICAgICRjbXNtYWlsZXIgPSYgJGdDbXMtPm1vZHVsZXNbJ0NNU01haWxlciddWydvYmplY3QnXTsNCiAgICANCiAgICAkYWRkcmVzc2VzID0gYXJyYXkoKTsNCiAgICAkYWRkcmVzc2VzWzBdID0gJGNjTUU7DQoJJGFkZHJlc3Nlc1sxXSA9ICRVcGxvYWRlZHRvbzsNCg0KICAgIC8vJGFkZHJlc3Nlc1syXSA9ICIqIjsNCiAgICAvLyRhZGRyZXNzZXNbM10gPSAiKiI7DQogICAgDQogICAgZm9yZWFjaCgkYWRkcmVzc2VzIGFzICRvbmVfYWRkcmVzcykgew0KICAgIA0KICAgICAgICAkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCRvbmVfYWRkcmVzcyk7DQogICAgICAgIA0KICAgICAgICBpZiAoJGFkZHJlc3Nlc1swXT09JG9uZV9hZGRyZXNzKXsNCiAgICAgICAgCSRjbXNtYWlsZXItPlNldEJvZHkoJENDdGV4dC4kYm9keXRleHQpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAJJGNtc21haWxlci0+U2V0Qm9keSgkVE90ZXh0LiRib2R5dGV4dCk7DQogICAgICAgIH0NCg0KICAgICAgICAkY21zbWFpbGVyLT5Jc0hUTUwodHJ1ZSk7DQogICAgICAgICRjbXNtYWlsZXItPlNldFN1YmplY3QoJ0NsYXNzIG5vdGlmaWNhdGlvbi0tJy4kc3VtbWFyeS4nJyk7DQogICAgICAgICRjbXNtYWlsZXItPlNlbmQoKTsNCiAgICAgICAgJGNtc21haWxlci0+Q2xlYXJBZGRyZXNzZXMoKTsNCiAgICB9DQogICAgZWNobyJNYWlsIHNlbnQgPGJyLz4iOw==]]></data>
	</file>
</module>
