# Name: rss_admin_db_manager v4.4 # Type: Admin/Public plugin # Database management system. # Author: Rob Sable # URL: http://www.wilshireone.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern CMS - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjIwOiJyc3NfYWRtaW5fZGJfbWFuYWdlciI7czo2OiJhdXRo b3IiO3M6OToiUm9iIFNhYmxlIjtzOjEwOiJhdXRob3JfdXJpIjtzOjI3OiJodHRwOi8vd3d3 LndpbHNoaXJlb25lLmNvbS8iO3M6NzoidmVyc2lvbiI7czozOiI0LjQiO3M6MTE6ImRlc2Ny aXB0aW9uIjtzOjI3OiJEYXRhYmFzZSBtYW5hZ2VtZW50IHN5c3RlbS4iO3M6NDoiY29kZSI7 czoxOTY0ODoiaWYgKEB0eHBpbnRlcmZhY2UgPT0gJ2FkbWluJykgew0KICAgIGFkZF9wcml2 cygncnNzX2RiX21hbicsICcxJyk7DQogICAgcmVnaXN0ZXJfdGFiKCJleHRlbnNpb25zIiwg InJzc19kYl9tYW4iLCAiREIgTWFuYWdlciIpOw0KICAgIHJlZ2lzdGVyX2NhbGxiYWNrKCJy c3NfZGJfbWFuIiwgInJzc19kYl9tYW4iKTsNCg0KICAgIGFkZF9wcml2cygncnNzX3NxbF9y dW4nLCAnMScpOw0KICAgIHJlZ2lzdGVyX3RhYigiZXh0ZW5zaW9ucyIsICJyc3Nfc3FsX3J1 biIsICJSdW4gU1FMIik7DQogICAgcmVnaXN0ZXJfY2FsbGJhY2soInJzc19zcWxfcnVuIiwg InJzc19zcWxfcnVuIik7DQoNCiAgICBhZGRfcHJpdnMoJ3Jzc19kYl9iaycsICcxJyk7DQog ICAgcmVnaXN0ZXJfdGFiKCJleHRlbnNpb25zIiwgInJzc19kYl9iayIsICJEQiBCYWNrdXAi KTsNCiAgICByZWdpc3Rlcl9jYWxsYmFjaygicnNzX2RiX2JrIiwgInJzc19kYl9iayIpOw0K fQ0KDQpmdW5jdGlvbiByc3NfZGJfYmsoJGV2ZW50LCAkc3RlcCkgew0KICBnbG9iYWwgJHBy ZWZzLCAkcnNzX2RiYmtfcGF0aCwgJHJzc19kYmJrX2R1bXAsICRyc3NfZGJia19teXNxbCwg JHJzc19kYmJrX2xvY2ssICRyc3NfZGJia190eHBsb2csICRyc3NfZGJia19kZWJ1ZywgJERC LCAkZmlsZV9iYXNlX3BhdGg7DQoNCiAgaWYgKCFpc3NldCgkcnNzX2RiYmtfbG9jaykpIHsN CiAgICAkcnNzX2RiYmtfbG9jayA9ICIxIjsNCiAgICAkcnMgPSBzYWZlX2luc2VydCgndHhw X3ByZWZzJywgIm5hbWU9J3Jzc19kYmJrX2xvY2snLCB2YWw9JyRyc3NfZGJia19sb2NrJywg cHJlZnNfaWQ9JzEnIik7DQogIH0NCg0KICBpZiAoIWlzc2V0KCRyc3NfZGJia190eHBsb2cp KSB7DQogICAgJHJzc19kYmJrX3R4cGxvZyA9ICIxIjsNCiAgICAkcnMgPSBzYWZlX2luc2Vy dCgndHhwX3ByZWZzJywgIm5hbWU9J3Jzc19kYmJrX3R4cGxvZycsIHZhbD0nJHJzc19kYmJr X3R4cGxvZycsIHByZWZzX2lkPScxJyIpOw0KICB9DQoNCiAgaWYgKCFpc3NldCgkcnNzX2Ri YmtfZGVidWcpKSB7DQogICAgJHJzc19kYmJrX2RlYnVnID0gIjAiOw0KICAgICRycyA9IHNh ZmVfaW5zZXJ0KCd0eHBfcHJlZnMnLCAibmFtZT0ncnNzX2RiYmtfZGVidWcnLCB2YWw9JyRy c3NfZGJia19kZWJ1ZycsIHByZWZzX2lkPScxJyIpOw0KICB9DQoNCiAgaWYgKCFpc3NldCgk cnNzX2RiYmtfcGF0aCkpIHsNCiAgICAkcnNzX2RiYmtfcGF0aCA9ICRmaWxlX2Jhc2VfcGF0 aDsNCiAgICAkcnMgPSBzYWZlX2luc2VydCgndHhwX3ByZWZzJywgIm5hbWU9J3Jzc19kYmJr X3BhdGgnLCB2YWw9JyIuYWRkc2xhc2hlcygkcnNzX2RiYmtfcGF0aCkuIicsIHByZWZzX2lk PScxJyIpOw0KICB9DQoNCiAgaWYgKCFpc3NldCgkcnNzX2RiYmtfZHVtcCkpIHsNCiAgICAk cnNzX2RiYmtfZHVtcCA9ICJteXNxbGR1bXAiOw0KICAgICRycyA9IHNhZmVfaW5zZXJ0KCd0 eHBfcHJlZnMnLCAibmFtZT0ncnNzX2RiYmtfZHVtcCcsIHZhbD0nIi5hZGRzbGFzaGVzKCRy c3NfZGJia19kdW1wKS4iJywgcHJlZnNfaWQ9JzEnIik7DQogIH0NCg0KICBpZiAoIWlzc2V0 KCRyc3NfZGJia19teXNxbCkpIHsNCiAgICAkcnNzX2RiYmtfbXlzcWwgPSAibXlzcWwiOw0K ICAgICRycyA9IHNhZmVfaW5zZXJ0KCd0eHBfcHJlZnMnLCAibmFtZT0ncnNzX2RiYmtfbXlz cWwnLCB2YWw9JyIuYWRkc2xhc2hlcygkcnNzX2RiYmtfbXlzcWwpLiInLCBwcmVmc19pZD0n MSciKTsNCiAgfQ0KDQogIGluY2x1ZGUodHhwYXRoIC4gJy9pbmNsdWRlL3R4cF9wcmVmcy5w aHAnKTsNCg0KICAkYmtwYXRoID0gJHJzc19kYmJrX3BhdGg7DQogICRpc3dpbiA9IHByZWdf bWF0Y2goJy9XaW4vJyxwaHBfdW5hbWUoKSk7DQogICRteXNxbF9odXAgPSAnIC1oJy4kREIt Pmhvc3QuJyAtdScuJERCLT51c2VyLicgLXAnLmVzY2FwZXNoZWxsY21kKCREQi0+cGFzcyk7 DQogICAgJHR4cGxvZ3BzID0gcHMoJ3Jzc19kYmJrX3R4cGxvZycpOw0KDQogIGlmIChwcygi c2F2ZSIpKSB7DQoNCiAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIiLCAiUHJlZmVyZW5jZXMg U2F2ZWQiKTsNCiAgICAgIHNhZmVfdXBkYXRlKCJ0eHBfcHJlZnMiLCAidmFsID0gJyIuYWRk c2xhc2hlcyhwcygncnNzX2RiYmtfcGF0aCcpKS4iJyIsIm5hbWUgPSAncnNzX2RiYmtfcGF0 aCcgYW5kIHByZWZzX2lkID0nMSciKTsNCiAgICAgIHNhZmVfdXBkYXRlKCJ0eHBfcHJlZnMi LCAidmFsID0gJyIuYWRkc2xhc2hlcyhwcygncnNzX2RiYmtfZHVtcCcpKS4iJyIsIm5hbWUg PSAncnNzX2RiYmtfZHVtcCcgYW5kIHByZWZzX2lkID0nMSciKTsNCiAgICAgIHNhZmVfdXBk YXRlKCJ0eHBfcHJlZnMiLCAidmFsID0gJyIuYWRkc2xhc2hlcyhwcygncnNzX2RiYmtfbXlz cWwnKSkuIiciLCJuYW1lID0gJ3Jzc19kYmJrX215c3FsJyBhbmQgcHJlZnNfaWQgPScxJyIp Ow0KICAgICAgc2FmZV91cGRhdGUoInR4cF9wcmVmcyIsICJ2YWwgPSAnIi5wcygncnNzX2Ri YmtfbG9jaycpLiInIiwibmFtZSA9ICdyc3NfZGJia19sb2NrJyBhbmQgcHJlZnNfaWQgPScx JyIpOw0KICAgICAgaWYgKGlzc2V0KCR0eHBsb2dwcykpIHNhZmVfdXBkYXRlKCJ0eHBfcHJl ZnMiLCAidmFsID0gJyIucHMoJ3Jzc19kYmJrX3R4cGxvZycpLiInIiwibmFtZSA9ICdyc3Nf ZGJia190eHBsb2cnIGFuZCBwcmVmc19pZCA9JzEnIik7DQogICAgICBzYWZlX3VwZGF0ZSgi dHhwX3ByZWZzIiwgInZhbCA9ICciLnBzKCdyc3NfZGJia19kZWJ1ZycpLiInIiwibmFtZSA9 ICdyc3NfZGJia19kZWJ1ZycgYW5kIHByZWZzX2lkID0nMSciKTsNCiAgICAgIGhlYWRlcigi TG9jYXRpb246IGluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsiKTsNCg0KICB9ICBlbHNlIGlm IChncHMoImJrIikpIHsNCg0KICAgICAgICAgICAgJGJrX3RhYmxlID0gKGdwcygiYmtfdGFi bGUiKSkgPyAiIC0tdGFibGVzICIuZ3BzKCJia190YWJsZSIpLiIgIiA6ICIiOw0KICAgICAg ICAgICAgJHRhYnBhdGggPSAoZ3BzKCJia190YWJsZSIpKSA/ICItIi5ncHMoImJrX3RhYmxl IikgOiAiIjsNCiAgICAgICRnemlwID0gZ3BzKCJnemlwIik7DQogICAgICAgICAgICAkZmls ZW5hbWUgPSB0aW1lKCkuJy0nLiREQi0+ZGIuJHRhYnBhdGg7DQogICAgICAkYmFja3VwX3Bh dGggPSAkYmtwYXRoLicvJy4kZmlsZW5hbWUuJy5zcWwnOw0KICAgICAgJGxvY2sgPSAoJHJz c19kYmJrX2xvY2spID8gIiIgOiAiIC0tc2tpcC1sb2NrLXRhYmxlcyAtLXNraXAtYWRkLWxv Y2tzICI7DQogICAgICBlY2hvICR0eHBsb2dwczsNCiAgICAgICRub2xvZyA9ICgkcnNzX2Ri YmtfdHhwbG9nKSA/ICIiIDogIiAtLWlnbm9yZS10YWJsZT0iLiREQi0+ZGIuIi50eHBfbG9n ICI7DQogICAgICAkbm9sb2cgPSAoaXNzZXQoJGJrX3RhYmxlKSAmJiBncHMoImJrX3RhYmxl IikgPT0gInR4cF9sb2ciKSA/ICIiIDogJG5vbG9nOw0KDQogICAgICBpZigkZ3ppcCkgew0K ICAgICAgICAkYmFja3VwX3BhdGguPSAnLmd6JzsNCiAgICAgICAgJGJhY2t1cF9jbWQgPSAk cnNzX2RiYmtfZHVtcC4kbXlzcWxfaHVwLicgLVEgLS1hZGQtZHJvcC10YWJsZSAnLiRsb2Nr LiRub2xvZy4kREItPmRiLiRia190YWJsZS4nIHwgZ3ppcCA+ICcuJGJhY2t1cF9wYXRoOw0K ICAgICAgfSBlbHNlIHsNCiAgICAgICAgJGJhY2t1cF9jbWQgPSAkcnNzX2RiYmtfZHVtcC4k bXlzcWxfaHVwLicgLVEgLS1hZGQtZHJvcC10YWJsZSAnLiRsb2NrLiRub2xvZy4kREItPmRi LiRia190YWJsZS4nID4gJy4kYmFja3VwX3BhdGg7DQogICAgICB9DQogICAgICAgICRia2Rl YnVnID0gKCRyc3NfZGJia19kZWJ1ZykgPyAkYmFja3VwX2NtZCA6ICcnOw0KICAgICAgJGVy cm9yID0gIiI7DQoNCiAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1JykpIHsN CiAgICAgICAgcGFzc3RocnUoJGJhY2t1cF9jbWQsICRlcnJvcik7DQogICAgICB9IGVsc2Ug ew0KICAgICAgICAkZHVtcEl0PXBvcGVuKCRiYWNrdXBfY21kLCAncicpOw0KICAgICAgICBw Y2xvc2UoJGR1bXBJdCk7DQogICAgICB9DQoNCiAgICAgIGlmKCFpc193cml0YWJsZSgkYmtw YXRoKSkgew0KICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkJBQ0tVUCBGQUlMRUQ6 IGZvbGRlciBpcyBub3Qgd3JpdGFibGUiKTsNCiAgICAgIH0gZWxzZWlmKCRlcnJvcikgew0K ICAgICAgICB1bmxpbmsoJGJhY2t1cF9wYXRoKTsNCiAgICAgICAgcGFnZXRvcCgiREIgTWFu YWdlciIsICJCQUNLVVAgRkFJTEVELiAgRVJST1IgTk86ICIuJGVycm9yKTsNCiAgICAgIH0g ZWxzZSBpZighaXNfZmlsZSgkYmFja3VwX3BhdGgpKSB7DQogICAgICAgIHBhZ2V0b3AoIkRC IE1hbmFnZXIiLCAiQkFDS1VQIEZBSUxFRC4gIEVSUk9SIE5POiAiLiRlcnJvcik7DQogICAg ICB9IGVsc2UgaWYoZmlsZXNpemUoJGJhY2t1cF9wYXRoKSA9PSAwKSB7DQogICAgICAgIHVu bGluaygkYmFja3VwX3BhdGgpOw0KICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkJB Q0tVUCBGQUlMRUQuICBFUlJPUiBOTzogIi4kZXJyb3IpOw0KICAgICAgfSBlbHNlIHsNCiAg ICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJCYWNrZWQgVXA6ICIuJERCLT5kYi4iIHRv ICIuJGZpbGVuYW1lKTsNCiAgICAgIH0NCg0KICB9IGVsc2UgaWYgKGdwcygiZG93bmxvYWQi KSkgew0KDQogICAgJGZuID0gZ3BzKCJkb3dubG9hZCIpOw0KICAgICRmaWxlX3BhdGggPSAk YmtwYXRoLicvJy4kZm47DQogICAgaGVhZGVyKCJQcmFnbWE6IHB1YmxpYyIpOw0KICAgIGhl YWRlcigiRXhwaXJlczogMCIpOw0KICAgIGhlYWRlcigiQ2FjaGUtQ29udHJvbDogbXVzdC1y ZXZhbGlkYXRlLCBwb3N0LWNoZWNrPTAsIHByZS1jaGVjaz0wIik7DQogICAgaGVhZGVyKCJD b250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2ZvcmNlLWRvd25sb2FkIik7DQogICAgaGVhZGVy KCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIpOw0KICAgIGhlYWRl cigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9kb3dubG9hZCIpOw0KICAgIGlmIChzdWJz dHIoJGZuLCAtMikgPT0gImd6IikgaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u L3ppcCIpOw0KICAgIGhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsg ZmlsZW5hbWU9Ii5iYXNlbmFtZSgkZmlsZV9wYXRoKS4iOyIpOw0KICAgIGhlYWRlcigiQ29u dGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmluYXJ5Iik7DQogICAgaGVhZGVyKCJDb250ZW50 LUxlbmd0aDogIi5maWxlc2l6ZSgkZmlsZV9wYXRoKSk7DQogICAgQHJlYWRmaWxlKCRmaWxl X3BhdGgpOw0KDQogIH0gZWxzZSBpZiAoZ3BzKCJyZXN0b3JlIikpIHsNCg0KICAgIGlmKHN0 cmlzdHIoZ3BzKCJyZXN0b3JlIiksICcuZ3onKSkgew0KICAgICAgJGJhY2t1cF9jbWQgPSAn Z3VuemlwIDwgJy4kYmtwYXRoLicvJy5ncHMoInJlc3RvcmUiKS4nIHwgJy4kcnNzX2RiYmtf bXlzcWwuJG15c3FsX2h1cC4nICcuJERCLT5kYjsNCiAgICB9IGVsc2Ugew0KICAgICAgJGJh Y2t1cF9jbWQgPSAkcnNzX2RiYmtfbXlzcWwuJG15c3FsX2h1cC4nICcuJERCLT5kYi4nIDwg Jy4kYmtwYXRoLicvJy5ncHMoInJlc3RvcmUiKTsNCiAgICB9DQoNCiAgICAkYmtkZWJ1ZyA9 ICgkcnNzX2RiYmtfZGVidWcpID8gJGJhY2t1cF9jbWQgOiAnJzsNCiAgICAkZXJyb3IgPSAi IjsNCg0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3Bhc3N0aHJ1JykpIHsNCiAgICAgIHBh c3N0aHJ1KCRiYWNrdXBfY21kLCAkZXJyb3IpOw0KICAgIH0gZWxzZSB7DQogICAgICAkZHVt cEl0PXBvcGVuKCRiYWNrdXBfY21kLCAncicpOw0KICAgICAgcGNsb3NlKCRkdW1wSXQpOw0K ICAgIH0NCg0KICAgIGlmKCRlcnJvcikgew0KICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIs ICJGQUlMRUQgVE8gUkVTVE9SRTogIi4kZXJyb3IpOw0KICAgIH0gZWxzZSB7DQogICAgICBw YWdldG9wKCJEQiBNYW5hZ2VyIiwgIlJlc3RvcmVkOiAiLmdwcygicmVzdG9yZSIpLiIgdG8g Ii4kREItPmRiKTsNCiAgICB9DQoNCiAgfSBlbHNlIGlmKGdwcygiZGVsZXRlIikpIHsNCg0K ICAgICAgaWYoaXNfZmlsZSgkYmtwYXRoLicvJy5ncHMoImRlbGV0ZSIpKSkgew0KICAgICAg ICBpZighdW5saW5rKCRia3BhdGguJy8nLmdwcygiZGVsZXRlIikpKSB7DQogICAgICAgICAg cGFnZXRvcCgiREIgTWFuYWdlciIsICJVbmFibGUgdG8gRGVsZXRlOiAiLmdwcygiZGVsZXRl IikpOw0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHBhZ2V0b3AoIkRCIE1hbmFnZXIi LCAiRGVsZXRlZDogIi5ncHMoImRlbGV0ZSIpKTsNCiAgICAgICAgfQ0KICAgICAgfSBlbHNl IHsNCiAgICAgICAgcGFnZXRvcCgiREIgTWFuYWdlciIsICJVbmFibGUgdG8gRGVsZXRlOiAi LmdwcygiZGVsZXRlIikpOw0KICAgICAgfQ0KDQogIH0gZWxzZSB7DQogICAgcGFnZXRvcCgi REIgQmFja3VwIik7DQogIH0NCg0KICAkZ3pwID0gKCEkaXN3aW4pID8gIiB8ICIuaHJlZign Z3ppcHBlZCBmaWxlJywgImluZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2JrPSREQi0+ ZGImYW1wO2d6aXA9MSIpIDogIiI7DQoNCiAgJHNxbHZlcnNpb24gPSBnZXRSb3coIlNFTEVD VCBWRVJTSU9OKCkgQVMgdmVyc2lvbiIpOw0KICAkc3FsdiA9IGV4cGxvZGUoIi0iLCAkc3Fs dmVyc2lvblsndmVyc2lvbiddKTsNCiAgJGFsbG93bm9sb2dzID0gKChmbG9hdCkkc3Fsdlsw XSA+PSAoZmxvYXQpIjQuMS45IikgPyB0ZGEoZ1R4dCgnSW5jbHVkZSB0eHBfbG9nOicpLCAn IHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSInKS50ZGEo eWVzbm9SYWRpbygicnNzX2RiYmtfdHhwbG9nIiwgJHJzc19kYmJrX3R4cGxvZyksICcgc3R5 bGU9InRleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiJykgOiAnJzsNCg0K ICAgIGlmIChpc3NldCgkYmtkZWJ1ZykgJiYgJGJrZGVidWcpIGVjaG8gJzxwIGFsaWduPSJj ZW50ZXIiPicuJGJrZGVidWcuJzwvcD4nOw0KDQogIGVjaG8NCiAgc3RhcnRUYWJsZSgnbGlz dCcpLg0KICBmb3JtKA0KICB0cigNCiAgICB0ZGEoZ1R4dCgnTG9jayBUYWJsZXM6JyksICcg c3R5bGU9InRleHQtYWxpZ246cmlnaHQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLnRkYSh5 ZXNub1JhZGlvKCJyc3NfZGJia19sb2NrIiwgJHJzc19kYmJrX2xvY2spLCAnIHN0eWxlPSJ0 ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ246bWlkZGxlIicpLg0KICAgICRhbGxvd25v bG9ncy4NCiAgICB0ZGEoZ1R4dCgnRGVidWcgTW9kZTonKSwgJyBzdHlsZT0idGV4dC1hbGln bjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiJykudGRhKHllc25vUmFkaW8oInJzc19k YmJrX2RlYnVnIiwgJHJzc19kYmJrX2RlYnVnKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpsZWZ0 O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSInKS4NCiAgICB0ZGEoZklucHV0KCJzdWJtaXQiLCJz YXZlIixnVHh0KCJzYXZlX2J1dHRvbiIpLCJwdWJsaXNoIikuZUlucHV0KCJyc3NfZGJfYmsi KS5zSW5wdXQoJ3NhdmVwcmVmcycpLCAiIGNvbHNwYW49XCIyXCIgY2xhc3M9XCJub2xpbmVc IiIpDQogICkuDQogIHRyKA0KICAgIHRkYShnVHh0KCdCYWNrdXAgUGF0aDonKSwgJyBzdHls ZT0idGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiJykudGRhKHRleHRf aW5wdXQoInJzc19kYmJrX3BhdGgiLCRyc3NfZGJia19wYXRoLCc1MCcpLCAnIGNvbHNwYW49 IjE1IicpDQogICkuDQogIHRyKA0KICAgIHRkYShnVHh0KCdteXNxbGR1bXAgUGF0aDonKSwg JyBzdHlsZT0idGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiJykudGRh KHRleHRfaW5wdXQoInJzc19kYmJrX2R1bXAiLCRyc3NfZGJia19kdW1wLCc1MCcpLCAnIGNv bHNwYW49IjE1IicpDQogICkuDQogIHRyKA0KICAgIHRkYShnVHh0KCdteXNxbCBQYXRoOicp LCAnIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSInKS50 ZGEodGV4dF9pbnB1dCgicnNzX2RiYmtfbXlzcWwiLCRyc3NfZGJia19teXNxbCwnNTAnKSwg JyBjb2xzcGFuPSIxNSInKSkNCiAgKS5lbmRUYWJsZSgpLg0KICBzdGFydFRhYmxlKCJsaXN0 IikuDQogIHRyKA0KICAgIHRkYShoZWQoJ0NyZWF0ZSBhIG5ldyBiYWNrdXAgb2YgdGhlICcu JERCLT5kYi4nIGRhdGFiYXNlJy5ici4NCiAgICBocmVmKCcuc3FsIGZpbGUnLCAiaW5kZXgu cGhwP2V2ZW50PXJzc19kYl9iayZhbXA7Yms9JERCLT5kYiIpLiRnenAsMyksJyBjb2xzcGFu PSI3IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IicpDQogICAgKS4NCiAgdHIodGRjcyho ZWQoIlByZXZpb3VzIEJhY2t1cCBGaWxlcyIsMSksNykpLg0KICB0cigNCiAgICBoY2VsbCgi Tm8uIikuDQogICAgaGNlbGwoIkJhY2t1cCBGaWxlIE5hbWUiKS4NCiAgICBoY2VsbCgiQmFj a3VwIERhdGUvVGltZSIpLg0KICAgIGhjZWxsKCJCYWNrdXAgRmlsZSBTaXplIikuDQogICAg aGNlbGwoIiIpLg0KICAgIGhjZWxsKCIiKS4NCiAgICBoY2VsbCgiIikNCiAgKTsNCg0KICAk dG90YWxzaXplID0gMDsNCiAgJG5vID0gMDsNCiAgaWYoIWlzX2ZvbGRlcl9lbXB0eSgkYmtw YXRoKSkgew0KICAgIGlmICgkaGFuZGxlID0gb3BlbmRpcigkYmtwYXRoKSkgew0KICAgICAg JGRhdGFiYXNlX2ZpbGVzID0gYXJyYXkoKTsNCiAgICAgIHdoaWxlIChmYWxzZSAhPT0gKCRm aWxlID0gcmVhZGRpcigkaGFuZGxlKSkpIHsNCiAgICAgICAgaWYgKCgkZmlsZSAhPSAnLicg JiYgJGZpbGUgIT0gJy4uJykgJiYgKHN1YnN0cigkZmlsZSwgLTQpID09ICIuc3FsIiB8fCBz dWJzdHIoJGZpbGUsIC03KSA9PSAiLnNxbC5neiIpKSB7DQogICAgICAgICAgJGRhdGFiYXNl X2ZpbGVzW10gPSAkZmlsZTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgY2xvc2VkaXIo JGhhbmRsZSk7DQogICAgICBmb3IoJGkgPSAoc2l6ZW9mKCRkYXRhYmFzZV9maWxlcyktMSk7 ICRpID4gLTE7ICRpLS0pIHsNCiAgICAgICAgJG5vKys7DQogICAgICAgICRzdHlsZSA9ICgk bm8lMiA9PSAwKSA/ICcgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNlZWU7IicgOiAnJzsN CiAgICAgICAgJGRhdGFiYXNlX3RleHQgPSBzdWJzdHIoJGRhdGFiYXNlX2ZpbGVzWyRpXSwg MTEpOw0KICAgICAgICAkZGF0ZV90ZXh0ID0gc3RyZnRpbWUoIiVBLCAlQiAlZCwgJVkgWyVI OiVNOiVTXSIsIHN1YnN0cigkZGF0YWJhc2VfZmlsZXNbJGldLCAwLCAxMCkpOw0KICAgICAg ICAkc2l6ZV90ZXh0ID0gZmlsZXNpemUoJGJrcGF0aC4nLycuJGRhdGFiYXNlX2ZpbGVzWyRp XSk7DQogICAgICAgICR0b3RhbHNpemUgKz0gJHNpemVfdGV4dDsNCg0KICAgICAgICBlY2hv DQogICAgICAgIHRyKA0KICAgICAgICAgIHRkKCRubykuDQogICAgICAgICAgdGQoJGRhdGFi YXNlX3RleHQpLg0KICAgICAgICAgIHRkKCRkYXRlX3RleHQpLg0KICAgICAgICAgIHRkKHBy ZXR0eUZpbGVTaXplKCRzaXplX3RleHQpKS4NCiAgICAgICAgICAnPHRkPjxhIGhyZWY9Imlu ZGV4LnBocD9ldmVudD1yc3NfZGJfYmsmYW1wO2Rvd25sb2FkPScuJGRhdGFiYXNlX2ZpbGVz WyRpXS4nIj5Eb3dubG9hZDwvYT48L3RkPicuDQogICAgICAgICAgJzx0ZD48YSBocmVmPSJp bmRleC5waHA/ZXZlbnQ9cnNzX2RiX2JrJmFtcDtyZXN0b3JlPScuJGRhdGFiYXNlX2ZpbGVz WyRpXS4nIiAgb25jbGljaz0icmV0dXJuIHZlcmlmeShcJycuZ1R4dCgnYXJlX3lvdV9zdXJl JykuJ1wnKSI+UmVzdG9yZTwvYT48L3RkPicuDQogICAgICAgICAgJzx0ZD48YSBocmVmPSJp bmRleC5waHA/ZXZlbnQ9cnNzX2RiX2JrJmFtcDtkZWxldGU9Jy4kZGF0YWJhc2VfZmlsZXNb JGldLiciICBvbmNsaWNrPSJyZXR1cm4gdmVyaWZ5KFwnJy5nVHh0KCdhcmVfeW91X3N1cmUn KS4nXCcpIj5EZWxldGU8L2E+PC90ZD4nLCAkc3R5bGUNCiAgICAgICAgKTsNCiAgICAgIH0N Cg0KICAgIGVjaG8NCiAgICAgIHRyKA0KICAgICAgICB0YWcoJG5vLiIgQmFja3VwIEZpbGUo cykiLCAidGgiLCAnIGNvbHNwYW49IjMiJykuDQogICAgICAgIHRhZyhwcmV0dHlGaWxlU2l6 ZSgkdG90YWxzaXplKSwgInRoIiwgJyBjb2xzcGFuPSI0IicpDQogICAgICApOw0KDQogICAg fSBlbHNlIHsNCiAgICAgIGVjaG8NCiAgICAgIHRyKA0KICAgICAgICB0ZGEoaGVkKCdZb3Ug aGF2ZSBubyBkYXRhYmFzZSBiYWNrdXBzJy5ici4nQ3JlYXRlIGEgbmV3IGJhY2t1cCBvZiB0 aGUgJy4kREItPmRiLicgZGF0YWJhc2UnLmJyLg0KICAgICAgICBocmVmKCcuc3FsIGZpbGUn LCAiaW5kZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7Yms9JERCLT5kYiIpLiRnenAsMyks JyBjb2xzcGFuPSI3IiBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IicpDQogICAgICAgICk7 DQogICAgfQ0KICB9IGVsc2Ugew0KICAgICAgZWNobw0KICAgICAgdHIoDQogICAgICAgIHRk YShoZWQoJ1lvdSBoYXZlIG5vIGRhdGFiYXNlIGJhY2t1cHMnLmJyLidDcmVhdGUgYSBuZXcg YmFja3VwIG9mIHRoZSAnLiREQi0+ZGIuJyBkYXRhYmFzZScuYnIuDQogICAgICAgIGhyZWYo Jy5zcWwgZmlsZScsICJpbmRleC5waHA/ZXZlbnQ9cnNzX2RiX2JrJmFtcDtiaz0kREItPmRi IikuJGd6cCwzKSwnIGNvbHNwYW49IjciIHN0eWxlPSJ0ZXh0LWFsaWduOmNlbnRlcjsiJykN CiAgICAgICAgKTsNCiAgfQ0KICBlY2hvIGVuZFRhYmxlKCk7DQp9DQoNCmZ1bmN0aW9uIHJz c19kYl9tYW4oJGV2ZW50LCAkc3RlcCkgew0KICBnbG9iYWwgJERCOw0KDQogIGlmIChncHMo Im9wdF90YWJsZSIpKSB7DQogICAgJHF1ZXJ5ID0gIk9QVElNSVpFIFRBQkxFICIuZ3BzKCJv cHRfdGFibGUiKTsNCiAgICBzYWZlX3F1ZXJ5KCRxdWVyeSk7DQogICAgcGFnZXRvcCgiREIg TWFuYWdlciIsICJPcHRpbXplZDogIi5ncHMoIm9wdF90YWJsZSIpKTsNCiAgfSBlbHNlICBp ZiAoZ3BzKCJyZXBfdGFibGUiKSkgew0KICAgICRxdWVyeSA9ICJSRVBBSVIgVEFCTEUgIi5n cHMoInJlcF90YWJsZSIpOw0KICAgIHNhZmVfcXVlcnkoJHF1ZXJ5KTsNCiAgICBwYWdldG9w KCJEQiBNYW5hZ2VyIiwgIlJlcGFpcmVkOiAiLmdwcygicmVwX3RhYmxlIikpOw0KICAgIH0g ZWxzZSAgaWYgKGdwcygicmVwX2FsbCIpKSB7DQogICAgICAgICRxdWVyeSA9ICJSRVBBSVIg VEFCTEUgIi5ncHMoInJlcF9hbGwiKTsNCiAgICAgICAgc2FmZV9xdWVyeSgkcXVlcnkpOw0K ICAgICAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIlJlcGFpcmVkIEFsbCBUYWJsZXMiKTsN CiAgfSBlbHNlICBpZiAoZ3BzKCJkcm9wX3RhYmxlIikpIHsNCiAgICAkcXVlcnkgPSAiRFJP UCBUQUJMRSAiLmdwcygiZHJvcF90YWJsZSIpOw0KICAgIHNhZmVfcXVlcnkoJHF1ZXJ5KTsN CiAgICBwYWdldG9wKCJEQiBNYW5hZ2VyIiwgIkRyb3BwZWQ6ICIuZ3BzKCJkcm9wX3RhYmxl IikpOw0KICB9IGVsc2Ugew0KICAgIHBhZ2V0b3AoIkRhdGFiYXNlIE1hbmFnZXIiKTsNCiAg fQ0KDQogICAgJHNxbHZlcnNpb24gPSBnZXRSb3coIlNFTEVDVCBWRVJTSU9OKCkgQVMgdmVy c2lvbiIpOw0KICAgICRoZWFkYXR0cyA9ICcgc3R5bGU9ImNvbG9yOiMwMDY5RDE7cGFkZGlu ZzowIDEwcHggMCA1cHg7Iic7DQoNCiAgICBlY2hvDQogICAgc3RhcnRUYWJsZSgnZGJpbmZv JykuDQogICAgdHIoDQogICAgICAgIGhjZWxsKCJEYXRhYmFzZSBIb3N0OiIpLg0KICAgICAg ICB0ZGEoJERCLT5ob3N0LCAkaGVhZGF0dHMpLg0KICAgICAgICBoY2VsbCgiRGF0YWJhc2Ug TmFtZToiKS4NCiAgICAgICAgdGRhKCREQi0+ZGIsICRoZWFkYXR0cykuDQogICAgICAgIGhj ZWxsKCJEYXRhYmFzZSBVc2VyOiIpLg0KICAgICAgICB0ZGEoJERCLT51c2VyLCAkaGVhZGF0 dHMpLg0KICAgICAgICBoY2VsbCgiRGF0YWJhc2UgVmVyc2lvbjoiKS4NCiAgICAgICAgdGRh KCJNeVNRTCB2Ii4kc3FsdmVyc2lvblsndmVyc2lvbiddLCAkaGVhZGF0dHMpDQogICAgKS4N CiAgICBlbmRUYWJsZSgpLmJyOw0KDQogICAgZWNobw0KICAgIHN0YXJ0VGFibGUoJ2xpc3Qn KS4NCiAgICB0cigNCiAgICAgICAgaGNlbGwoIk5vLiIpLg0KICAgICAgICBoY2VsbCgiVGFi bGVzIikuDQogICAgICAgIGhjZWxsKCJSZWNvcmRzIikuDQogICAgICAgIGhjZWxsKCJEYXRh IFVzYWdlIikuDQogICAgICAgIGhjZWxsKCJJbmRleCBVc2FnZSIpLg0KICAgICAgICBoY2Vs bCgiVG90YWwgVXNhZ2UiKS4NCiAgICAgICAgaGNlbGwoIk92ZXJoZWFkIikuDQogICAgICAg IC8vaGNlbGwoIk9wdGltaXplIikuDQogICAgICAgIGhjZWxsKCJFcnJObyIpLg0KICAgICAg ICBoY2VsbCgiUmVwYWlyIikuDQogICAgICAgIGhjZWxsKCJCYWNrdXAiKS4NCiAgICAgICAg aGNlbGwoIkRyb3AiKQ0KICAgICk7DQoNCiAgICAgICAgaWYodmVyc2lvbl9jb21wYXJlKCRz cWx2ZXJzaW9uWyd2ZXJzaW9uJ10sICczLjIzJywgJz49JykpIHsNCiAgICAgICAgICAgICRu byA9IDA7DQogICAgICAgICAgICAkcm93X3VzYWdlID0gMDsNCiAgICAgICAgICAgICRkYXRh X3VzYWdlID0gMDsNCiAgICAgICAgICAgICRpbmRleF91c2FnZSA9ICAwOw0KICAgICAgICAg ICAgJG92ZXJoZWFkX3VzYWdlID0gMDsNCiAgICAgICAgICAgICRhbGx0YWJzID0gYXJyYXko KTsNCg0KICAgICAgICAgICAgJHRhYmxlc3N0YXR1cyA9IGdldFJvd3MoIlNIT1cgVEFCTEUg U1RBVFVTIik7DQogICAgICAgICAgICBmb3JlYWNoKCR0YWJsZXNzdGF0dXMgYXMgICR0YWJs ZXN0YXR1cykgew0KICAgICAgICAgICAgICAgIGV4dHJhY3QoJHRhYmxlc3RhdHVzKTsNCg0K ICAgICAgICAgICAgICAgICRxID0gIlNIT1cgS0VZUyBGUk9NIGAiLiROYW1lLiJgIjsNCiAg ICAgICAgICAgICAgICBzYWZlX3F1ZXJ5KCRxKTsNCiAgICAgICAgICAgICAgICAkbXlzcWxF cnJubyA9IG15c3FsaV9lcnJubygkREItPmxpbmspOw0KICAgICAgICAgICAgICAgICRhbGx0 YWJzW10gPSAkTmFtZTsNCg0KICAgICAgICAgICAgICAgICRjb2xvciA9ICgkbXlzcWxFcnJu byAhPSAwKSA/ICcgc3R5bGU9ImNvbG9yOiNEMTAwMDA7IicgOiAnIHN0eWxlPSJjb2xvcjoj NEI5RjAwOyInOw0KICAgICAgICAgICAgICAgICRjb2xvcjIgPSAoJERhdGFfZnJlZSA+IDAp ID8gJyBzdHlsZT0iY29sb3I6I0QxMDAwMDsiJyA6ICcgc3R5bGU9ImNvbG9yOiM0QjlGMDA7 Iic7DQogICAgICAgICAgICAgICAgJHN0eWxlID0gKCRubyUyID09IDApID8gJyBzdHlsZT0i YmFja2dyb3VuZC1jb2xvcjogI2VlZTsiJyA6ICcnOw0KDQogICAgICAgICAgICAgICAgJG5v Kys7DQogICAgICAgICAgICAgICAgJHJvd191c2FnZSArPSAkUm93czsNCiAgICAgICAgICAg ICAgICAkZGF0YV91c2FnZSArPSAkRGF0YV9sZW5ndGg7DQogICAgICAgICAgICAgICAgJGlu ZGV4X3VzYWdlICs9ICAkSW5kZXhfbGVuZ3RoOw0KICAgICAgICAgICAgICAgICRvdmVyaGVh ZF91c2FnZSArPSAkRGF0YV9mcmVlOw0KDQogICAgICAgICAgICAgICAgZWNobw0KICAgICAg ICAgICAgICAgIHRyKA0KICAgICAgICAgICAgICAgICAgICB0ZCgkbm8pLg0KICAgICAgICAg ICAgICAgICAgICB0ZChocmVmKCROYW1lLCAiaW5kZXgucGhwP2V2ZW50PXJzc19zcWxfcnVu JmFtcDt0bj0iLiROYW1lKSkuDQogICAgICAgICAgICAgICAgICAgIHRkKCIgIi4kUm93cyku DQogICAgICAgICAgICAgICAgICAgIHRkKHByZXR0eUZpbGVTaXplKCREYXRhX2xlbmd0aCkp Lg0KICAgICAgICAgICAgICAgICAgICB0ZChwcmV0dHlGaWxlU2l6ZSgkSW5kZXhfbGVuZ3Ro KSkuDQogICAgICAgICAgICAgICAgICAgIHRkKHByZXR0eUZpbGVTaXplKCREYXRhX2xlbmd0 aCArICRJbmRleF9sZW5ndGgpKS4NCiAgICAgICAgICAgICAgICAgICAgdGRhKHByZXR0eUZp bGVTaXplKCREYXRhX2ZyZWUpLCAkY29sb3IyKS4NCiAgICAgICAgICAgICAgICAgICAgdGRh KCIgIi4kbXlzcWxFcnJubywgJGNvbG9yKS4NCiAgICAgICAgICAgICAgICAgICAgdGQoaHJl ZigiUmVwYWlyIiwgImluZGV4LnBocD9ldmVudD1yc3NfZGJfbWFuJmFtcDtyZXBfdGFibGU9 Ii4kTmFtZSkpLg0KICAgICAgICAgICAgICAgICAgICB0ZChocmVmKCJCYWNrdXAiLCAiaW5k ZXgucGhwP2V2ZW50PXJzc19kYl9iayZhbXA7Yms9MSZhbXA7YmtfdGFibGU9Ii4kTmFtZSku DQogICAgICAgICAgICAgICAgICAgICc8dGQ+PGEgaHJlZj0iaW5kZXgucGhwP2V2ZW50PXJz c19kYl9tYW4mYW1wO2Ryb3BfdGFibGU9Jy4kTmFtZS4nIiAgb25jbGljaz0icmV0dXJuIHZl cmlmeShcJycuZ1R4dCgnYXJlX3lvdV9zdXJlJykuJ1wnKSI+RHJvcDwvYT48L3RkPicpLCAk c3R5bGUNCiAgICAgICAgICAgICAgICApOw0KICAgICAgICAgICAgfQ0KDQogICAgICAgICAg ICBlY2hvDQogICAgICAgICAgICB0cigNCiAgICAgICAgICAgICAgICBoY2VsbCgiVG90YWwi KS4NCiAgICAgICAgICAgICAgICBoY2VsbCgkbm8uIiBUYWJsZXMiKS4NCiAgICAgICAgICAg ICAgICBoY2VsbChudW1iZXJfZm9ybWF0KCRyb3dfdXNhZ2UpKS4NCiAgICAgICAgICAgICAg ICBoY2VsbChwcmV0dHlGaWxlU2l6ZSgkZGF0YV91c2FnZSkpLg0KICAgICAgICAgICAgICAg IGhjZWxsKHByZXR0eUZpbGVTaXplKCRpbmRleF91c2FnZSkpLg0KICAgICAgICAgICAgICAg IGhjZWxsKHByZXR0eUZpbGVTaXplKCRkYXRhX3VzYWdlICsgJGluZGV4X3VzYWdlKSkuDQog ICAgICAgICAgICAgICAgaGNlbGwocHJldHR5RmlsZVNpemUoJG92ZXJoZWFkX3VzYWdlKSku DQogICAgICAgICAgICAgICAgaGNlbGwoKS4NCiAgICAgICAgICAgICAgICB0ZGEoaHJlZihz dHJvbmcoIlJlcGFpciBBbGwiKSwgImluZGV4LnBocD9ldmVudD1yc3NfZGJfbWFuJmFtcDty ZXBfYWxsPSIuaW1wbG9kZSgiLCIsJGFsbHRhYnMpKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpj ZW50ZXI7IiBjb2xzcGFuPSIzIicpLCAkc3R5bGUNCiAgICAgICAgICAgICk7DQoNCiAgICAg ICAgfSBlbHNlIHsNCiAgICAgICAgICAgIGVjaG8NCiAgICAgICAgICAgIHRyKA0KICAgICAg ICAgICAgICAgIHRkYSgiQ291bGQgTm90IFNob3cgVGFibGUgU3RhdHVzIEJlY2F1c2UgWW91 ciBNWVNRTCBWZXJzaW9uIElzIExvd2VyIFRoYW4gMy4yMy4iLCAnIHN0eWxlPSJ0ZXh0LWFs aWduOmNlbnRlcjsiIGNvbHNwYW49MTQiJykNCiAgICAgICAgICAgICk7DQogICAgICAgIH0N Cg0KZWNobw0KICAgIHRyKA0KICAgICAgICB0ZGEoaHJlZigiUnVuIFNRTCIsICJpbmRleC5w aHA/ZXZlbnQ9cnNzX3NxbF9ydW4iKSwgJyBzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7IiBj b2xzcGFuPSIxNCInKQ0KICAgICkuDQogICAgZW5kVGFibGUoKTsNCn0NCg0KZnVuY3Rpb24g cnNzX3NxbF9ydW4oJGV2ZW50LCAkc3RlcCkgew0KICBnbG9iYWwgJERCOw0KICBwYWdldG9w KCJSdW4gU1FMIFF1ZXJ5Iik7DQogICR0ZXh0PSIiOw0KICAkcnNkW109IiI7DQogICRzcWxf cXVlcnkyPSIiOw0KDQogIGlmIChncHMoInRuIikpIHsNCiAgICAkdHEgPSAic2VsZWN0ICog ZnJvbSAiLmdwcygidG4iKTsNCiAgfQ0KDQogIGlmIChncHMoInNxbF9xdWVyeSIpIHx8IGdw cygidG4iKSkgew0KICAgICRzcWxfcXVlcmllczIgPSAoZ3BzKCJzcWxfcXVlcnkiKSkgPyB0 cmltKGdwcygic3FsX3F1ZXJ5IikpIDogdHJpbSgkdHEpOw0KICAgICR0b3RhbHF1ZXJ5Y291 bnQgPSAwOw0KICAgICRzdWNjZXNzcXVlcnkgPSAwOw0KICAgIGlmKCRzcWxfcXVlcmllczIp IHsNCiAgICAgICRzcWxfcXVlcmllcyA9IGFycmF5KCk7DQogICAgICAkc3FsX3F1ZXJpZXMy ID0gZXhwbG9kZSgiXG4iLCAkc3FsX3F1ZXJpZXMyKTsNCiAgICAgIGZvcmVhY2goJHNxbF9x dWVyaWVzMiBhcyAkc3FsX3F1ZXJ5Mikgew0KICAgICAgICAkc3FsX3F1ZXJ5MiA9IHRyaW0o c3RyaXBzbGFzaGVzKCRzcWxfcXVlcnkyKSk7DQogICAgICAgICRzcWxfcXVlcnkyID0gcHJl Z19yZXBsYWNlKCIvW1xyXG5dKy8iLCAnJywgJHNxbF9xdWVyeTIpOw0KICAgICAgICBpZigh ZW1wdHkoJHNxbF9xdWVyeTIpKSB7DQogICAgICAgICAgJHNxbF9xdWVyaWVzW10gPSAkc3Fs X3F1ZXJ5MjsNCiAgICAgICAgfQ0KICAgICAgfQ0KDQogICAgICBmb3JlYWNoKCRzcWxfcXVl cmllcyBhcyAkc3FsX3F1ZXJ5KSB7DQogICAgICAgIGlmIChwcmVnX21hdGNoKCIvXlxccyoo aW5zZXJ0fHVwZGF0ZXxyZXBsYWNlfGRlbGV0ZXxjcmVhdGV8dHJ1bmNhdGUpIC9pIiwkc3Fs X3F1ZXJ5KSkgew0KICAgICAgICAgICRydW5fcXVlcnkgPSBzYWZlX3F1ZXJ5KCRzcWxfcXVl cnkpOw0KICAgICAgICAgIGlmKCEkcnVuX3F1ZXJ5KSB7DQogICAgICAgICAgICAkdGV4dCAu PSBncmFmKG15c3FsaV9lcnJvcigkREItPmxpbmspLCAnIHN0eWxlPSJjb2xvcjojRDEwMDAw OyInKTsNCiAgICAgICAgICAgICR0ZXh0IC49IGdyYWYoJHNxbF9xdWVyeSwgJyBzdHlsZT0i Y29sb3I6I0QxMDAwMDsiJyk7DQogICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICRz dWNjZXNzcXVlcnkrKzsNCiAgICAgICAgICAgICR0ZXh0IC49IGdyYWYoJHNxbF9xdWVyeSwg JyBzdHlsZT0iY29sb3I6IzRCOUYwMDsiJyk7DQogICAgICAgICAgfQ0KICAgICAgICAgICR0 b3RhbHF1ZXJ5Y291bnQrKzsNCiAgICAgICAgfSBlbHNlaWYgKHByZWdfbWF0Y2goIi9eXFxz KihzZWxlY3QpIC9pIiwkc3FsX3F1ZXJ5KSkgew0KICAgICAgICAgICRydW5fcXVlcnkgPSBz YWZlX3F1ZXJ5KCRzcWxfcXVlcnkpOw0KICAgICAgICAgIGlmKCRydW5fcXVlcnkpICRzdWNj ZXNzcXVlcnkrKzsNCiAgICAgICAgICAgIGlmICgkcnVuX3F1ZXJ5ICYmIG15c3FsaV9udW1f cm93cygkcnVuX3F1ZXJ5KSA+IDApIHsNCg0KICAgICAgICAgICAgICAvKiBnZXQgY29sdW1u IG1ldGFkYXRhICovDQogICAgICAgICAgICAgICRpID0gMDsNCiAgICAgICAgICAgICAgJGhl YWRlcnMgPSAiIjsNCiAgICAgICAgICAgICAgd2hpbGUgKCRpIDwgbXlzcWxpX251bV9maWVs ZHMoJHJ1bl9xdWVyeSkpIHsNCiAgICAgICAgICAgICAgICAgJG1ldGEgPSBteXNxbGlfZmV0 Y2hfZmllbGQoJHJ1bl9xdWVyeSk7DQogICAgICAgICAgICAgICAgICRoZWFkZXJzLj1oY2Vs bCgkbWV0YS0+bmFtZSk7DQogICAgICAgICAgICAgICAgICRpKys7DQogICAgICAgICAgICAg IH0NCg0KICAgICAgICAgICAgICAkcnNkW10gPQ0KICAgICAgICAgICAgICAnPGRpdiBjbGFz cz0ic2Nyb2xsV3JhcHBlciI+Jy5zdGFydFRhYmxlKCdsaXN0JywgJycsICdzY3JvbGxhYmxl JykuDQogICAgICAgICAgICAgICc8dGhlYWQ+Jy50cigkaGVhZGVycykuJzwvdGhlYWQ+PHRi b2R5Pic7DQoNCiAgICAgICAgICAgICAgd2hpbGUgKCRhID0gbXlzcWxpX2ZldGNoX2Fzc29j KCRydW5fcXVlcnkpKSAkb3V0W10gPSAkYTsNCiAgICAgICAgICAgICAgbXlzcWxpX2ZyZWVf cmVzdWx0KCRydW5fcXVlcnkpOw0KDQogICAgICAgICAgICAgIGZvcmVhY2ggKCRvdXQgYXMg JGIpIHsNCiAgICAgICAgICAgICAgICAkZGF0YSA9ICIiOw0KICAgICAgICAgICAgICAgIGZv cmVhY2ggKCRiIGFzICRmKSB7DQogICAgICAgICAgICAgICAgICAkZGF0YS49dGQoJGYpOw0K ICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgICAkcnNkW10gPSB0cigkZGF0YSk7 DQogICAgICAgICAgICAgIH0NCg0KICAgICAgICAgICAgICAkcnNkW10gPSAnPC90Ym9keT4n LmVuZFRhYmxlKCkuJzwvZGl2PicuYnI7DQogICAgICAgICAgICAgICRvdXQgPSBhcnJheSgp Ow0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgJHRleHQgLj0gZ3JhZiht eXNxbGlfZXJyb3IoJERCLT5saW5rKSwgJyBzdHlsZT0iY29sb3I6I0QxMDAwMDsiJyk7DQog ICAgICAgICAgICB9DQogICAgICAgICAgJHRleHQgLj0gZ3JhZigkc3FsX3F1ZXJ5LCAnIHN0 eWxlPSJjb2xvcjojRDEwMDAwOyInKTsNCiAgICAgICAgICAkdG90YWxxdWVyeWNvdW50Kys7 DQogICAgICAgIH0gZWxzZWlmIChwcmVnX21hdGNoKCIvXlxccyooZHJvcHxzaG93fGdyYW50 KSAvaSIsJHNxbF9xdWVyeSkpIHsNCiAgICAgICAgICAkdGV4dCAuPSBncmFmKCRzcWxfcXVl cnkuIiAtIFFVRVJZIFRZUEUgTk9UIFNVUFBPUlRFRCIsICcgc3R5bGU9ImNvbG9yOiNEMTAw MDA7IicpOw0KICAgICAgICAgICR0b3RhbHF1ZXJ5Y291bnQrKzsNCiAgICAgICAgfQ0KICAg ICAgfQ0KICAgICAgJHRleHQgLj0gZ3JhZigkc3VjY2Vzc3F1ZXJ5LiIvIi4kdG90YWxxdWVy eWNvdW50LiIgUXVlcnkocykgRXhlY3V0ZWQgU3VjY2Vzc2Z1bGx5IiwgJyBzdHlsZT0iY29s b3I6IzAwNjlEMTsiJyk7DQogICAgfQ0KICB9DQoNCiAgZWNobw0KICBzdGFydFRhYmxlKCdl ZGl0JykuDQogIHRyKA0KICAgIHRkKA0KICAgICAgZm9ybSgNCiAgICAgICAgZ3JhZigiRWFj aCBxdWVyeSBtdXN0IGJlIG9uIGEgc2luZ2xlIGxpbmUuICBZb3UgbWF5IHJ1biBtdWx0aXBs ZSBxdWVyaWVzIGF0IG9uY2UgYnkgc3RhcnRpbmcgYSBuZXcgbGluZS4iLmJyLiJTdXBwb3J0 ZWQgcXVlcnkgdHlwZXMgaW5jbHVkZSBTRUxFQ1QsIElOU0VSVCwgVVBEQVRFLCBDUkVBVEUs IFJFUExBQ0UsIGFuZCBERUxFVEUuIikuDQogICAgICAgIGdyYWYoIldBUk5JTkc6IEFsbCBT UUwgcnVuIGluIHRoaXMgd2luZG93IHdpbGwgaW1tZWRpYXRlbHkgYW5kIHBlcm1hbmVudGx5 IGNoYW5nZSB5b3VyIGRhdGFiYXNlLiIsICcgc3R5bGU9ImZvbnQtd2VpZ2h0OmJvbGQ7Iicp Lg0KICAgICAgICB0ZXh0X2FyZWEoJ3NxbF9xdWVyeScsJzIwMCcsJzU1MCcsJHNxbF9xdWVy eTIpLmJyLg0KICAgICAgICBmSW5wdXQoJ3N1Ym1pdCcsJ3J1bicsZ1R4dCgnUnVuJyksJ3B1 Ymxpc2gnKS5ocmVmKCJHbyB0byBEYXRhYmFzZSBNYW5hZ2VyIiwgImluZGV4LnBocD9ldmVu dD1yc3NfZGJfbWFuIikuDQogICAgICAgIGVJbnB1dCgncnNzX3NxbF9ydW4nKSwgJycsICcg dmVyaWZ5KFwnJy5nVHh0KCdhcmVfeW91X3N1cmUnKS4nXCcpIicNCiAgICAgICkNCiAgICAp DQogICkuDQogIHRyKA0KICAgIHRkKA0KICAgICAgICBncmFmKCR0ZXh0LmJyLmltcGxvZGUo JycsICRyc2QpKQ0KICAgICkNCiAgKS4NCiAgZW5kVGFibGUoKTsNCg0KfQ0KZnVuY3Rpb24g cHJldHR5RmlsZVNpemUgKCRieXRlcykgew0KICBpZiAoJGJ5dGVzIDwgMTAyNCkgew0KICAg ICAgcmV0dXJuICIkYnl0ZXMgYnl0ZXMiOw0KICB9IGVsc2UgaWYgKHN0cmxlbigkYnl0ZXMp IDw9IDkgJiYgc3RybGVuKCRieXRlcykgPj0gNykgew0KICAgICAgcmV0dXJuIG51bWJlcl9m b3JtYXQoJGJ5dGVzIC8gMTA0ODU3NiwyKS4iIE1CIjsNCiAgfSBlbHNlaWYgKHN0cmxlbigk Ynl0ZXMpID49IDEwKSB7DQogICAgICByZXR1cm4gbnVtYmVyX2Zvcm1hdCgkYnl0ZXMgLyAx MDczNzQxODI0LDIpLiIgR0IiOw0KICB9DQogIHJldHVybiBudW1iZXJfZm9ybWF0KCRieXRl cyAvIDEwMjQsMikuIiBLQiI7DQp9DQoNCmZ1bmN0aW9uIGlzX2ZvbGRlcl9lbXB0eSgkZGly KSB7DQogIGlmIChpc19kaXIoJGRpcikpIHsNCiAgICAkZGw9b3BlbmRpcigkZGlyKTsNCiAg ICBpZiAoJGRsKSB7DQogICAgICB3aGlsZSgkbmFtZSA9IHJlYWRkaXIoJGRsKSkgew0KICAg ICAgICBpZiAoIWlzX2RpcigiJGRpci8kbmFtZSIpKSB7DQogICAgICAgICAgcmV0dXJuIGZh bHNlOw0KICAgICAgICAgIGJyZWFrOw0KICAgICAgfQ0KICAgIH0NCiAgICBjbG9zZWRpcigk ZGwpOw0KICAgIH0NCiAgICByZXR1cm4gdHJ1ZTsNCiAgfSBlbHNlIHJldHVybiB0cnVlOw0K fSI7czo0OiJ0eXBlIjtzOjE6IjEiO3M6NToib3JkZXIiO3M6MToiNSI7czo1OiJmbGFncyI7 czoxOiIwIjtzOjQ6ImhlbHAiO3M6NDc3NDoiPHA+PGJyIC8+CmgxLiBUZXh0cGF0dGVybiBE YXRhYmFzZSBNYW5hZ2VyPC9wPgoKPHA+CTxwPlRoZSByc3NfYWRtaW5fZGJfbWFuYWdlciBw bHVnaW4gYWRkcyAzIG5ldyB0YWJzIHRvIHlvdXIgVGV4dHBhdHRlcm4gYWRtaW4gaW50ZXJm YWNlLiAgRWFjaCB0YWIgY29udGFpbnMgZGlmZmVyZW50IGZ1bmN0aW9uYWxpdHkgdG8gaGVs cCBtYW5hZ2U8YnIgLz4KPC9wPgoKPHA+eW91ciA8YSBocmVmPSJodHRwOi8vd3d3Lm15c3Fs LmNvbS8iPk15U1FMPC9hPiBkYXRhYmFzZS4gIFlvdSBjYW4gdGhpbmsgb2YgdGhpcyBwbHVn aW4gYXMgYSBsaWdodHdlaWdodCByZXBsYWNlbWVudCBmb3IgPGEgaHJlZj0iaHR0cDovL3d3 dy5waHBteWFkbWluLm5ldC9ob21lX3BhZ2UvIj5waHBNeUFkbWluPC9hPi48L3A+PC9wPgoK CTxoMj5EYXRhYmFzZSBCYWNrdXA8L2gyPgoKPHA+CTxwPlRoZSA8c3Ryb25nPkRCIEJhY2t1 cCB0YWI8L3N0cm9uZz4gYWxsb3dzIHlvdSB0byBiYWNrdXAsIGRvd25sb2FkIGFuZCByZXN0 b3JlIHRoZSBNeVNRTCBkYXRhYmFzZSB0aGF0IGlzIHVzZWQgZm9yIHlvdXIgVGV4dHBhdHRl cm4gaW5zdGFsbGF0aW9uLjxiciAvPgo8L3A+Cgo8cD5UaGUgZGF0YWJhc2UgYmFja3VwcyBh bmQgcmVzdG9yZXMgYXJlIHJ1biB1c2luZyBNeVNRTCYjODIxNztzIDxhIGhyZWY9Imh0dHA6 Ly9kZXYubXlzcWwuY29tL2RvYy9teXNxbC9lbi9teXNxbGR1bXAuaHRtbCI+bXlzcWxkdW1w PC9hPiBjb21tYW5kLjxiciAvPgo8L3A+Cgo8cD5PbiB0aGlzIHRhYiB5b3UgYXJlIGFibGUg dG86PC9wPjwvcD4KCgk8dWw+CgkJPGxpPkNyZWF0ZSBhIC5zcWwgYmFja3VwIGZpbGUgb24g d2luZG93cyB3aXRoIHRoZSBhZGRpdGlvbmFsIG9wdGlvbiBvZiBjcmVhdGluZyBhIGd6aXBw ZWQgYmFja3VwIG9uICpuaXggb3BlcmF0aW5nIHN5c3RlbXM8L2xpPgoJCTxsaT5WaWV3IGEg bGlzdCBvZiBwcmV2aW91cyBiYWNrdXAgZmlsZXM8L2xpPgoJCTxsaT5SZXN0b3JlIHlvdXIg ZGF0YWJhc2UgZnJvbSBvbmUgb2YgdGhlIHByZXZpb3VzIGJhY2t1cHM8L2xpPgoJCTxsaT5E b3dubG9hZCBhIGJhY2t1cCBmaWxlPC9saT4KCQk8bGk+RGVsZXRlIG9sZCBiYWNrdXBzPC9s aT4KCTwvdWw+CgoJPGgyPkJhY2t1cCBQcmVmZXJlbmNlczwvaDI+CgoJPHA+WW91IGhhdmUg dGhlIGFiaWxpdHkgdG8gc2V0IHNldmVyYWwgcHJlZmVyZW5jZXMgcmVsYXRlZCB0byB5b3Vy IGRhdGFiYXNlIGJhY2t1cHMuICBZb3UgY2FuIHNldCB0aGVzZSBvcHRpb25zIG9uIHRoZSBi YWNrdXAgdGFiLiAgVGhlIG9wdGlvbnMgaW5jbHVkZTo8L3A+CgoJPHVsPgoJCTxsaT48c3Ry b25nPkxvY2sgVGFibGVzPC9zdHJvbmc+ICYjODIxMTsgWW91ciBob3N0IG1heSBvciBtYXkg bm90IHN1cHBvcnQgdGhpcyBvcHRpb24uICBGb3IgZXhhbXBsZSwgYnkgZGVmYXVsdCwgVGV4 dGRyaXZlIGRvZXNuJiM4MjE3O3QgYWxsb3cgdGFibGUgbG9ja2luZy4gIElmIHlvdXIgYmFj a3VwIGZhaWxzLCB0cnkgc2V0dGluZyB0aGlzIHRvICYjODIyMDtObyYjODIyMTsuPC9saT4K CQk8bGk+PHN0cm9uZz5EZWJ1ZyBNb2RlPC9zdHJvbmc+ICYjODIxMTsgVHVybmluZyBkZWJ1 Z2dpbmcgb24gd2lsbCBlY2hvIHRoZSBjb21tYW5kIGJlaW5nIHJ1biB0byB0aGUgc2NyZWVu LjwvbGk+CgkJPGxpPjxzdHJvbmc+QmFja3VwIFBhdGg8L3N0cm9uZz4gJiM4MjExOyBTZXQg dGhlIGRpcmVjdG9yeSB0aGF0IHlvdXIgYmFja3VwcyB3aWxsIGJlIHNhdmVkIHRvLjwvbGk+ CgkJPGxpPjxzdHJvbmc+TXlzcWxkdW1wIFBhdGg8L3N0cm9uZz4gJiM4MjExOyBJdHMgbGlr ZWx5IHRoYXQgdGhlIGRlZmF1bHQgd2lsbCB3b3JrIGZvciB5b3UuICBJZiBub3QsIGVudGVy IHRoZSBmdWxsIHBhdGggdGhlIHRoZSBleGVjdXRhYmxlLjwvbGk+CgkJPGxpPjxzdHJvbmc+ TXlzcWwgUGF0aDwvc3Ryb25nPiAmIzgyMTE7IEl0cyBsaWtlbHkgdGhhdCB0aGUgZGVmYXVs dCB3aWxsIHdvcmsgZm9yIHlvdS4gIElmIG5vdCwgZW50ZXIgdGhlIGZ1bGwgcGF0aCB0aGUg dGhlIGV4ZWN1dGFibGUuPC9saT4KCTwvdWw+CgoJPGgyPkRhdGFiYXNlIE1hbmFnZXI8L2gy PgoKPHA+CTxwPlRoZSA8c3Ryb25nPkRCIE1hbmFnZXIgdGFiPC9zdHJvbmc+IGRpc3BsYXlz IGluZm9ybWF0aW9uIGFib3V0IHlvdXIgTXlTUUwgZGF0YWJhc2UgYW5kIGFsbCBvZiBpdHMg dGFibGVzLiAgQSBkZXRhaWxlZCBsaXN0IGluY2x1ZGVzIHRoZSBuYW1lIG9mIHRoZSB0YWJs ZSwgbnVtYmVyIG9mIHJvd3MgYW5kIGZpbGUgc3BhY2UgdXNhZ2UuPGJyIC8+CjwvcD4KCjxw PllvdSB3aWxsIGFsc28gYmUgYWxlcnRlZCBvZiBhbnkgb3ZlcmhlYWQgb3IgZXJyb3JzIHRo YXQgbmVlZCB0byBiZSByZXBhaXJlZC4gIFRhYmxlcyBjYW4gYmUgcmVwYWlyZWQsIGRyb3Bw ZWQgb3IgYmFja2VkIHVwIGZyb20gdGhpcyBsaXN0aW5nLjwvcD48L3A+CgoJPHVsPgoJCTxs aT5DbGlja2luZyBvbiB0aGUgbmFtZSBvZiB0aGUgdGFibGUgd2lsbCBydW4gYSBzZWxlY3Qg KiBbdGFibGUgbmFtZV0gPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48 c3BhbiBjbGFzcz0iY2FwcyI+U1FMPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHN0YXRlbWVudCBh bmQgdGFrZSB5b3UgdG8gdGhlIDxzdHJvbmc+UnVuIDxzcGFuIGNsYXNzPSJjYXBzIj48c3Bh biBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj48L3NwYW4+PC9z cGFuPiB0YWI8L3N0cm9uZz4gdG8gZGlzcGxheSB0aGUgcmVzdWx0cy48L2xpPgoJCTxsaT5S ZXBhaXIgYSBzaW5nbGUgdGFibGUgaW4gdGhlIGxpc3RpbmcgYnkgY2xpY2tpbmcgdGhlIFJl cGFpciBsaW5rLjwvbGk+CgkJPGxpPlJlcGFpciBhbGwgdGFibGVzIGluIHRoZSBsaXN0aW5n IGJ5IGNsaWNraW5nIHRoZSBSZXBhaXIgQWxsIGxpbmsuPC9saT4KCQk8bGk+QmFja3VwIGEg c2luZ2xlIHRhYmxlIGluIHRoZSBsaXN0aW5nIGJ5IGNsaWNraW5nIHRoZSBCYWNrdXAgbGlu ay48L2xpPgoJCTxsaT5Ecm9wIGEgc2luZ2xlIHRhYmxlIGluIHRoZSBsaXN0aW5nIGJ5IGNs aWNraW5nIHRoZSBEcm9wIGxpbmsuPC9saT4KCTwvdWw+CgoJPGgyPlJ1biA8c3BhbiBjbGFz cz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5TUUw8L3Nw YW4+PC9zcGFuPjwvc3Bhbj4gV2luZG93PC9oMj4KCjxwPgk8cD5UaGUgPHN0cm9uZz5SdW4g PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2Fw cyI+U1FMPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHRhYjwvc3Ryb25nPiBhbGxvd3MgZm9yIGZy ZWUgZm9ybSBlbnRyeSBhbmQgZXhlY3V0aW9uIG9mIDxzcGFuIGNsYXNzPSJjYXBzIj48c3Bh biBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj48L3NwYW4+PC9z cGFuPiBzdGF0ZW1lbnRzLiAgVGhlIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0i Y2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwvc3Bhbj48L3NwYW4+PC9zcGFuPiB3aW5k b3cgYWNjZXB0czxiciAvPgo8L3A+Cgo8cD48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xh c3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj5TRUxFQ1Q8L3NwYW4+PC9zcGFuPjwvc3Bh bj4sIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9 ImNhcHMiPklOU0VSVDwvc3Bhbj48L3NwYW4+PC9zcGFuPiwgPHNwYW4gY2xhc3M9ImNhcHMi PjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+VVBEQVRFPC9zcGFuPjwv c3Bhbj48L3NwYW4+LCA8c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPjxz cGFuIGNsYXNzPSJjYXBzIj5DUkVBVEU8L3NwYW4+PC9zcGFuPjwvc3Bhbj4sIDxzcGFuIGNs YXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlJFUExB Q0U8L3NwYW4+PC9zcGFuPjwvc3Bhbj4sIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFz cz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlRSVU5DQVRFPC9zcGFuPjwvc3Bhbj48L3Nw YW4+LCBhbmQgPHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBj bGFzcz0iY2FwcyI+REVMRVRFPC9zcGFuPjwvc3Bhbj48L3NwYW4+IHN0YXRlbWVudHMuICBJ ZiBhIDxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9 ImNhcHMiPlNFTEVDVDwvc3Bhbj48L3NwYW4+PC9zcGFuPiBzdGF0ZW1lbnQgaXMgcnVuLCB0 aGUgcmVzdWx0cyB3aWxsIGJlIGRpc3BsYXllZCB0byB5b3UgYmVsb3cgdGhlIDxzcGFuIGNs YXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2FwcyI+PHNwYW4gY2xhc3M9ImNhcHMiPlNRTDwv c3Bhbj48L3NwYW4+PC9zcGFuPiB3aW5kb3cgaW4gYSB0YWJsZS48YnIgLz4KPC9wPgoKPHA+ VGhlIHRhYmxlIG1hcmt1cCBhbGxvd3MgeW91IHRvIGFkZCB5b3VyIG93biBzdHlsZXMgZm9y IGNyZWF0aW5nIGEgPGEgaHJlZj0iaHR0cDovL3d3dy5hZ2F2ZWdyb3VwLmNvbS8/cD0zMSI+ PHNwYW4gY2xhc3M9ImNhcHMiPjxzcGFuIGNsYXNzPSJjYXBzIj48c3BhbiBjbGFzcz0iY2Fw cyI+Q1NTPC9zcGFuPjwvc3Bhbj48L3NwYW4+IFNjcm9sbGFibGUgVGFibGU8L2E+LjwvcD48 L3A+CgoJPGgyPk1ham9yIFJhbnNvbSBDb250cmlidXRvcnM8L2gyPgoKCTxwPgk8dWw+CgkJ PGxpPkphbiBXaWxsZW0gZGUgQnJ1aWpuPC9saT4KCQk8bGk+SGVpa2tpIFlsPC9wPiI7czoz OiJtZDUiO3M6MzI6IjlkMzUzYjc1OWM2OWVhNjdlMDcyMTk0NWVjMWMwMjlmIjt9