Content-Type: multipart/related; start=; boundary=----------JfP2pNVbk2l5NZbf6N7koj Content-Location: http://www.suzukovod.ru/showpost.php?p=53930&postcount=15 Subject: =?utf-8?Q?=D0=A4=D0=BE=D1=80=D1=83=D0=BC=20=D0=92=D1=81=D0=B5=D1=80=D0=BE=D1=81=D1=81=D0=B8=D0=B9=D1=81=D0=BA=D0=BE=D0=B3=D0=BE=20=D0=9A=D0=BB=D1=83=D0=B1=D0=B0=20SUZUKI=20-=20=D0=9F=D0=BE=D0=BA=D0=B0=D0=B7=D0=B0=D1=82=D1=8C=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D0=BE=20-=20=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D1=83=D0=B6=D0=B8=D0=BD=D1=8B.=20=D0=9A=D0=BE=D0=BB=D1=85=D0=BE=D0=B7=D0=B8=D0=BC.?= MIME-Version: 1.0 ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=showpost.htm Content-Type: text/html; name=showpost.htm Content-Id: Content-Location: http://www.suzukovod.ru/showpost.php?p=53930&postcount=15 Content-Transfer-Encoding: 8bit Форум Всероссийского Клуба SUZUKI - Показать сообщение отдельно - Передние пружины. Колхозим.
Показать сообщение отдельно
Старый 09.11.2007, 19:04   #15
Bigos
Активный Сузуковод
 
Регистрация: 28.01.2007
Адрес: Калининград
Сообщения: 206
Репутация: 49
Bigos в начале пути
Отправить сообщение для  Bigos с помощью ICQ
Re: Передние пружины. Колхозим.

2Taksist'ka
Значит вот тебе рецепт.
Раз решила делать подвеску и еще к лету лифтовать то лучше делать это сразу. получится дешевле и лучше.

перед.
Амортизаторы Монро газ-масло (если родные живые то можно оставить)+проставка 50-55 мм (чертеж есть у axeRoman в галерее) а инструкций в сети и на форуме много.
Пружины можно ставить от тойоты марк2 (370 мм) или от мерседеса 124 (440 мм) обрезав их до длинны 340 мм. волговские ИМХО очень жестко.

Зад.
Амортизаторы Каяба от тойоты 4ранер (номер по каталогу 344254) (надо только втулку вытачить в нижний сайлент. внутренний диаметр 12 мм а наружний не помню делали по месту кажись 19 мм)
пружины от ВАЗ 2101-07 пердние.

бюджет по Калининградским ценам
перед
аморты 6600 руб. пара
пружины 1800 руб пара
зад
аморты 2160 руб пара
пружины 570 руб пара
+
проставки и втулки 150 руб.
итого 11280. + время 4 - 5 часов работы и пиво литра 3 )))

На 3х дверку еще надо проставку в кардан и под А-образный рычаг на мосту.

если на родных амортах делать зад то от ВАЗовских пружин отрезать 2 витка надо. про перед незнаю.
__________________
Suzuki Vitara 1.6i, G16B, АКПП, 5 дв. 1993г. лифт 2"/30"х9,5"х15
Bigos вне форума Добавить отзыв для Bigos Пожаловаться на это сообщение   Ответить с цитированием
------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=gradient_panel.gif Content-Type: image/gif; name=gradient_panel.gif Content-Location: http://www.suzukovod.ru/images/gradients/gradient_panel.gif Content-Transfer-Encoding: Base64 R0lGODlhCgDCAeYAAPP0/u3u+uzu+uXo9fT0/+/w++/w/Ors+fLz/ers+OXn9evs +fT1/+7w++zt+ufp9u3v+vHy/OTo9e3v+/Hx/Ojr+PLz/uns+Obp9/Pz/fT1/ujr 9/X0/+zt+ejq+PDw/PHx/e7v+urr+O/v++Xp9urt+evt+u3u++Tn9uXn9vX1/unr 9+/x/PX0/vTz/uzu+eTo9ufq9vDy/PP0/fDx/fHz/enq+Onq9/Ly/urr+e/x++7u +vP0/+vu+u7w/Obo9+bo9ejp9/Dw++7u++ns+e/v/Ovs+PDx+/Dy/enr+fPy/fLy /Ovs+ufq+O3t+vPy/ubq9ubp9efo9uXp9fL0/uvu+evt+Ozv+vTz/+7w+ubq9+7v /PP1/urt+u3w++rt+O3t+e3w+uzs+eXp9+3u+efr9/Hz/PL0/fHz/u7v++fp9+jq 9+fq9/Hy/ebp9uvt+ebo9vLy/fPz/vDx/Onr+OXo9vT0/vX1/+Tn9QAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAKAMIBAAf/gHeCg4SFhoeHHIKKiIQM iY2DDIoqdy13BJiWjIqZdwyPhpeOn4QqlZKjGncqGp2TjKAcirO0oIKypZUcj6Gt vYx3q7SagpWgp6ihliocBI+80LN2DAQqds2YBM+WDJV2dqulvKsqLbx20SoELS12 owR2BBrV8/N2rNUaGi2y7S3XwPXb9GidBnDh6D3LBEqhM3n7MDU7uO2SPID2OKio Rs2ewUcttml4BhEUNXwcwDFAGC9TuoMUObQ4aI4jTIXgUu4DFw8cRXnbIIYDupLl yp4jtwXleY8nTwBAD/JA6NQOVC4/CUClCqCn05Y9vcqzM3UsOKgAeADoWpUqUAIu /+LxiAd16lSvc7XGw1IW4VoALtbGk3MWnAssdlwElrfWjhw5WwFA/uvYBWRwagG7 sNo48N+/m8E9Fn2Z8+TEjzsTlrxWjmXJhl3D/mx5MuTNaz1zZu0iw+fUrYOnvt36 8uMZgWdkmCH5eGurj4dHj54hOoAZ01lXx348OhULcqo/9g15hnIA4BGIl3N+unIL kjOcGR8+g3jww8VTQYC/enUE/HH3GH8W4CegHPzxZ58Fy8mRHgII+gchAkoQ+BiD DtqXAYDhQcggAk8UKKJ4G3bIoAVKZIBfhwhagIMFAMaBInjgyahEiC/GASACOuLw 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 ADs= ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=gradient_panelsurround.gif Content-Type: image/gif; name=gradient_panelsurround.gif Content-Location: http://www.suzukovod.ru/images/gradients/gradient_panelsurround.gif Content-Transfer-Encoding: Base64 R0lGODlhCgDCAeYAANXY5dve693g7t3g7dXY5N7h7tbZ5dzf7dTX5NPW49LV4uDj 8NTW49ve7NHU4eDk8d/i797i79LU4ODk8tXZ5dXX5NHV4OHj8eHj8tLU4dfa5tLW 4tPV4tfZ5tjb59/j8OHk8d3f7dzg7dTY5ODi8NHV4dfb597g7trd69/h79re69LV 4Nvf7Nvd693h7tze7Nja59re6tnc6NLW4eDj8tPX49ba5tbY5dnd6uDi8dnb6Nrc 6dnc6tnd6drd6djc6NPX4tvd6tjb6dba59/j8drc6tjc6dnb6dPV4dPW4d/i8dfb 6NTW4t3h79fZ597i8Nja6Nze69ve6tXZ5tXX49vf69zg7N/h8NTY49TY5dfa6Nzf 697h8N7g797g7dbY5tXX5dvf7dTW5Nze7dbZ59fZ5d3f7t7i7tba5d3h7dre7NbY 5N3g7N3g79zg7tTX5dXY5tLW49bZ5tzf7Nrd6tfa59jb6NTX49PW4tnc6d7h7+Hk 8tHU4N/i8ODj8dLV4SH5BAAAAAAALAAAAAAKAMIBAAf/gHuCg4SFhoeIeyCJgxN7 jo+MkoMXinsYkYaYexcPmYKLhKGVghibGCCOE6ecjxirkYsYNIYTILeVqagTDzR+ EzQ0DxcTxZedlyAXr56Cq6aklcWoD8p+i8AXIMMgmH6PtiA0z36et6ab4sIPGH60 vNt+GA/yE5XCIL+eF8uhgg/F3G0Tp4jduGGo2uWjcUFYMV/dOvEr96Aiqm/lXFUi dqGcPAwNfa3qFG+YMD8c6aHUh9JXu04VK/qZeY2mzZnEUHaSt5JeR3oq4+G86ZFo x5pEaar0s4Bm05lLmdokYpPEzKc3seaw2XTB061Sv9KkKvWD05kfqBJZYPapWq9K //xY9dO2K5G1H3JsJcE2xwISfGeSyNFngZK/dpmmJUx3Zh+pUvUq6bNVCeDAg//6 IUzkA2C5fT706TOYL5HQfvO2JULC8uPQoReQJlz4w2HDH2SPptzn9mjRokkX3g17 ePDCXkWTIG34sGe2owGHfk46OF/iu3X3gfB7eXDlH4JzF/4BAnTsv3ePx75+/Prd 5d+rR89+d4TR8vukGB2Bu//tEDyxXQpX9HHfaE9AoGAEXEAQwRUP9qHHdk880aCB 93Fh4IT7FXiFgw7qEUEKAerB3Yh67BfBgyKm8ASKI/bXn4YgpmBjBC+SiKGCKejh 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 ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=vbulletin_global.js Content-Type: application/x-javascript; name=vbulletin_global.js Content-Location: http://www.suzukovod.ru/clientscript/vbulletin_global.js?v=361 Content-Transfer-Encoding: Base64 Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09KlwKfHwgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMgfHwKfHwgIyB2QnVsbGV0aW4gMy42LjEKfHwgIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMgfHwKfHwgIyBDb3B5cmlnaHQgqTIwMDAtMjAwNiBKZWxzb2Z0IEVudGVycHJp c2VzIEx0ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gfHwKfHwgIyBUaGlzIGZpbGUg bWF5IG5vdCBiZSByZWRpc3RyaWJ1dGVkIGluIHdob2xlIG9yIHNpZ25pZmljYW50 IHBhcnQuICMgfHwKfHwgIyAtLS0tLS0tLS0tLS0tLS0tIFZCVUxMRVRJTiBJUyBO T1QgRlJFRSBTT0ZUV0FSRSAtLS0tLS0tLS0tLS0tLS0tICMgfHwKfHwgIyBodHRw Oi8vd3d3LnZidWxsZXRpbi5jb20gfCBodHRwOi8vd3d3LnZidWxsZXRpbi5jb20v bGljZW5zZS5odG1sICMgfHwKfHwgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgfHwKXCo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ki8KCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi8vIEluaXRpYWwgc2V0dXAKCi8vIGVuc3VyZSBTRVNTSU9OVVJM IGV4aXN0cwppZiAodHlwZW9mIFNFU1NJT05VUkwgPT0gJ3VuZGVmaW5lZCcpCnsK CVNFU1NJT05VUkwgPSAnJzsKfQoKLy8gZW5zdXJlIHZicGhyYXNlIGV4aXN0cwpp ZiAodHlwZW9mIHZicGhyYXNlID09ICd1bmRlZmluZWQnKQp7Cgl2YnBocmFzZSA9 IG5ldyBBcnJheSgpOwp9CgovLyBBcnJheSBvZiBtZXNzYWdlIGVkaXRvciBvYmpl Y3RzCnZhciB2Ql9FZGl0b3IgPSBuZXcgQXJyYXkoKTsKCi8vIElnbm9yZSBjaGFy YWN0ZXJzIHdpdGhpbiBbcXVvdGVdIHRhZ3MgaW4gbWVzc2FnZXMgZm9yIGxlbmd0 aCBjaGVjawp2YXIgaWdub3JlcXVvdGVjaGFycyA9IGZhbHNlOwoKLy8gTnVtYmVy IG9mIHBhZ2VuYXYgaXRlbXMgZGVhbHQgd2l0aCBzbyBmYXIKdmFyIHBhZ2VuYXZj b3VudGVyID0gMDsKCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8v IEJyb3dzZXIgZGV0ZWN0aW9uIGFuZCBsaW1pdGF0aW9uIHdvcmthcm91bmRzCgov LyBEZWZpbmV2Ql9BSkFYX1hNTF9CdWlsZGVyIHRoZSBicm93c2VyIHdlIGhhdmUg aW5zdGVhZCBvZiBtdWx0aXBsZSBjYWxscyB0aHJvdWdob3V0IHRoZSBmaWxlCnZh ciB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCk7 CnZhciBpc19vcGVyYSAgPSAoKHVzZXJBZ2VudC5pbmRleE9mKCdvcGVyYScpICE9 IC0xKSB8fCAodHlwZW9mKHdpbmRvdy5vcGVyYSkgIT0gJ3VuZGVmaW5lZCcpKTsK dmFyIGlzX3NhZiAgICA9ICgodXNlckFnZW50LmluZGV4T2YoJ2FwcGxld2Via2l0 JykgIT0gLTEpIHx8IChuYXZpZ2F0b3IudmVuZG9yID09ICdBcHBsZSBDb21wdXRl ciwgSW5jLicpKTsKdmFyIGlzX3dlYnR2ICA9ICh1c2VyQWdlbnQuaW5kZXhPZign d2VidHYnKSAhPSAtMSk7CnZhciBpc19pZSAgICAgPSAoKHVzZXJBZ2VudC5pbmRl eE9mKCdtc2llJykgIT0gLTEpICYmICghaXNfb3BlcmEpICYmICghaXNfc2FmKSAm JiAoIWlzX3dlYnR2KSk7CnZhciBpc19pZTQgICAgPSAoKGlzX2llKSAmJiAodXNl ckFnZW50LmluZGV4T2YoJ21zaWUgNC4nKSAhPSAtMSkpOwp2YXIgaXNfbW96ICAg ID0gKChuYXZpZ2F0b3IucHJvZHVjdCA9PSAnR2Vja28nKSAmJiAoIWlzX3NhZikp Owp2YXIgaXNfa29uICAgID0gKHVzZXJBZ2VudC5pbmRleE9mKCdrb25xdWVyb3In KSAhPSAtMSk7CnZhciBpc19ucyAgICAgPSAoKHVzZXJBZ2VudC5pbmRleE9mKCdj b21wYXRpYmxlJykgPT0gLTEpICYmICh1c2VyQWdlbnQuaW5kZXhPZignbW96aWxs YScpICE9IC0xKSAmJiAoIWlzX29wZXJhKSAmJiAoIWlzX3dlYnR2KSAmJiAoIWlz X3NhZikpOwp2YXIgaXNfbnM0ICAgID0gKChpc19ucykgJiYgKHBhcnNlSW50KG5h dmlnYXRvci5hcHBWZXJzaW9uKSA9PSA0KSk7CnZhciBpc19tYWMgICAgPSAodXNl ckFnZW50LmluZGV4T2YoJ21hYycpICE9IC0xKTsKCi8vIENhdGNoIHBvc3NpYmxl IGJ1Z3Mgd2l0aCBXZWJUViBhbmQgb3RoZXIgb2xkZXIgYnJvd3NlcnMKdmFyIGlz X3JlZ2V4cCA9ICh3aW5kb3cuUmVnRXhwKSA/IHRydWUgOiBmYWxzZTsKCi8vIElz IHRoZSB2aXNpdGluZyBicm93c2VyIGNvbXBhdGlibGUgd2l0aCBBSkFYPwp2YXIg QUpBWF9Db21wYXRpYmxlID0gZmFsc2U7CgovLyBIZWxwIG91dCBvbGQgdmVyc2lv bnMgb2YgSUUgdGhhdCBkb24ndCB1bmRlcnN0YW5kIGVsZW1lbnQuc3R5bGUuY3Vy c29yID0gJ3BvaW50ZXInCnZhciBwb2ludGVyX2N1cnNvciA9IChpc19pZSA/ICdo YW5kJyA6ICdwb2ludGVyJyk7CgovKioKKiBXb3JrYXJvdW5kIGZvciBoZWlub3Vz IElFIGJ1ZyAtIGFkZCBzcGVjaWFsIHZCbGVuZ3RoIHByb3BlcnR5IHRvIGFsbCBz dHJpbmdzCiogVGhpcyBtZXRob2QgaXMgYXBwbGllZCB0byBBTEwgc3RyaW5nIG9i amVjdHMgYXV0b21hdGljYWxseQoqCiogQHJldHVybglpbnRlZ2VyCiovClN0cmlu Zy5wcm90b3R5cGUudkJsZW5ndGggPSBmdW5jdGlvbigpCnsKCXJldHVybiAoaXNf aWUgJiYgdGhpcy5pbmRleE9mKCdcbicpICE9IC0xKSA/IHRoaXMucmVwbGFjZSgv XHI/XG4vZywgJ18nKS5sZW5ndGggOiB0aGlzLmxlbmd0aDsKfQoKLyoqCiogUG9w IGZ1bmN0aW9uIGZvciBicm93c2VycyB0aGF0IGRvbid0IGhhdmUgaXQgYnVpbHQg aW4KKgoqIEBwYXJhbQlhcnJheQlBcnJheSBmcm9tIHdoaWNoIHRvIHBvcAoqCiog QHJldHVybgltaXhlZAludWxsIG9uIGVtcHR5LCB2YWx1ZSBvbiBzdWNjZXNzCiov CmZ1bmN0aW9uIGFycmF5X3BvcChhKQp7CglpZiAodHlwZW9mIGEgIT0gJ29iamVj dCcgfHwgIWEubGVuZ3RoKQoJewoJCXJldHVybiBudWxsOwoJfQoJZWxzZQoJewoJ CXZhciByZXNwb25zZSA9IGFbYS5sZW5ndGggLSAxXTsKCQlhLmxlbmd0aC0tOwoJ CXJldHVybiByZXNwb25zZTsKCX0KfQoKaWYgKHR5cGVvZiBBcnJheS5wcm90b3R5 cGUuc2hpZnQgPT09ICd1bmRlZmluZWQnKQp7CglBcnJheS5wcm90b3R5cGUuc2hp ZnQgPSBmdW5jdGlvbigpCgl7CgkJZm9yKHZhciBpID0gMCwgYiA9IHRoaXNbMF0s IGwgPSB0aGlzLmxlbmd0aC0xOyBpIDwgbDsgaSsrKQoJCXsKCQkJdGhpc1tpXSA9 IHRoaXNbaSArIDFdOwoJCX0KCQl0aGlzLmxlbmd0aC0tOwoJCXJldHVybiBiOwoJ fTsKfQoKLyoqCiogUHVzaCBmdW5jdGlvbiBmb3IgYnJvd3NlcnMgdGhhdCBkb24n dCBoYXZlIGl0IGJ1aWx0IGluCioKKiBAcGFyYW0JYXJyYXkJQXJyYXkgb250byB3 aGljaCB0byBwdXNoCiogQHBhcmFtCW1peGVkCVZhbHVlIHRvIHB1c2ggb250byBh cnJheQoqCiogQHJldHVybglpbnRlZ2VyCUxlbmd0aCBvZiBhcnJheQoqLwpmdW5j dGlvbiBhcnJheV9wdXNoKGEsIHZhbHVlKQp7CglhW2EubGVuZ3RoXSA9IHZhbHVl OwoJcmV0dXJuIGEubGVuZ3RoOwp9CgovKioKKiBGdW5jdGlvbiB0byBlbXVsYXRl IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkCioKKiBAcGFyYW0Jc3RyaW5nCU9iamVj dCBJRAoqCiogQHJldHVybgltaXhlZAludWxsIGlmIG5vdCBmb3VuZCwgb2JqZWN0 IGlmIGZvdW5kCiovCmZ1bmN0aW9uIGZldGNoX29iamVjdChpZG5hbWUpCnsKCWlm IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCkKCXsKCQlyZXR1cm4gZG9jdW1lbnQu Z2V0RWxlbWVudEJ5SWQoaWRuYW1lKTsKCX0KCWVsc2UgaWYgKGRvY3VtZW50LmFs bCkKCXsKCQlyZXR1cm4gZG9jdW1lbnQuYWxsW2lkbmFtZV07Cgl9CgllbHNlIGlm IChkb2N1bWVudC5sYXllcnMpCgl7CgkJcmV0dXJuIGRvY3VtZW50LmxheWVyc1tp ZG5hbWVdOwoJfQoJZWxzZQoJewoJCXJldHVybiBudWxsOwoJfQp9CgovKioKKiBG dW5jdGlvbiB0byBlbXVsYXRlIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l CioKKiBAcGFyYW0Jb2JqZWN0CVBhcmVudCBvYmplY3QgKGVnOiBkb2N1bWVudCkK KiBAcGFyYW0Jc3RyaW5nCVRhZyB0eXBlIChlZzogJ3RkJykKKgoqIEByZXR1cm4J YXJyYXkKKi8KZnVuY3Rpb24gZmV0Y2hfdGFncyhwYXJlbnRvYmosIHRhZykKewoJ aWYgKHBhcmVudG9iaiA9PSBudWxsKQoJewoJCXJldHVybiBuZXcgQXJyYXkoKTsK CX0KCWVsc2UgaWYgKHR5cGVvZiBwYXJlbnRvYmouZ2V0RWxlbWVudHNCeVRhZ05h bWUgIT0gJ3VuZGVmaW5lZCcpCgl7CgkJcmV0dXJuIHBhcmVudG9iai5nZXRFbGVt ZW50c0J5VGFnTmFtZSh0YWcpOwoJfQoJZWxzZSBpZiAocGFyZW50b2JqLmFsbCAm JiBwYXJlbnRvYmouYWxsLnRhZ3MpCgl7CgkJcmV0dXJuIHBhcmVudG9iai5hbGwu dGFncyh0YWcpOwoJfQoJZWxzZQoJewoJCXJldHVybiBuZXcgQXJyYXkoKTsKCX0K fQoKLyoqCiogRnVuY3Rpb24gdG8gY291bnQgdGhlIG51bWJlciBvZiB0YWdzIGlu IGFuIG9iamVjdAoqCiogQHBhcmFtCW9iamVjdAlQYXJlbnQgb2JqZWN0IChlZzog ZG9jdW1lbnQpCiogQHBhcmFtCXN0cmluZwlUYWcgdHlwZSAoZWc6ICd0ZCcpCioK KiBAcmV0dXJuCWludGVnZXIKKi8KZnVuY3Rpb24gZmV0Y2hfdGFnX2NvdW50KHBh cmVudG9iaiwgdGFnKQp7CglyZXR1cm4gZmV0Y2hfdGFncyhwYXJlbnRvYmosIHRh ZykubGVuZ3RoOwp9CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwov LyBFdmVudCBoYW5kbGVycwoKLyoqCiogSGFuZGxlcyB0aGUgZGlmZmVyZW50IGV2 ZW50IG1vZGVscyBvZiBkaWZmZXJlbnQgYnJvd3NlcnMgYW5kIHByZXZlbnRzIGV2 ZW50IGJ1YmJsaW5nCioKKiBAcGFyYW0JZXZlbnQJRXZlbnQgb2JqZWN0CioKKiBA cmV0dXJuCWV2ZW50CiovCmZ1bmN0aW9uIGRvX2FuX2UoZXZlbnRvYmopCnsKCWlm ICghZXZlbnRvYmogfHwgaXNfaWUpCgl7CgkJd2luZG93LmV2ZW50LnJldHVyblZh bHVlID0gZmFsc2U7CgkJd2luZG93LmV2ZW50LmNhbmNlbEJ1YmJsZSA9IHRydWU7 CgkJcmV0dXJuIHdpbmRvdy5ldmVudDsKCX0KCWVsc2UKCXsKCQlldmVudG9iai5z dG9wUHJvcGFnYXRpb24oKTsKCQlldmVudG9iai5wcmV2ZW50RGVmYXVsdCgpOwoJ CXJldHVybiBldmVudG9iajsKCX0KfQoKLyoqCiogSGFuZGxlcyB0aGUgZGlmZmVy ZW50IGV2ZW50IG1vZGVscyBvZiBkaWZmZXJlbnQgYnJvd3NlcnMgYW5kIHByZXZl bnRzIGV2ZW50IGJ1YmJsaW5nIGluIGEgbGVzc2VyIHdheSB0aGFuIGRvX2FuX2Uo KQoqCiogQHBhcmFtCWV2ZW50CUV2ZW50IG9iamVjdAoqCiogQHJldHVybglldmVu dAoqLwpmdW5jdGlvbiBlX2J5X2d1bShldmVudG9iaikKewoJaWYgKCFldmVudG9i aiB8fCBpc19pZSkKCXsKCQl3aW5kb3cuZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1 ZTsKCQlyZXR1cm4gd2luZG93LmV2ZW50OwoJfQoJZWxzZQoJewoJCWlmIChldmVu dG9iai50YXJnZXQudHlwZSA9PSAnc3VibWl0JykKCQl7CgkJCS8vIG5hdWdodHkg c2FmYXJpCgkJCWV2ZW50b2JqLnRhcmdldC5mb3JtLnN1Ym1pdCgpOwoJCX0KCQll dmVudG9iai5zdG9wUHJvcGFnYXRpb24oKTsKCQlyZXR1cm4gZXZlbnRvYmo7Cgl9 Cn0KCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIE1lc3NhZ2Ug bWFuaXB1bGF0aW9uIGFuZCB2YWxpZGF0aW9uCgovKioKKiBDaGVja3MgdGhhdCBh IG1lc3NhZ2UgaXMgdmFsaWQgZm9yIHN1Ym1pc3Npb24gdG8gUEhQCioKKiBAcGFy YW0Jc3RyaW5nCU1lc3NhZ2UgdGV4dAoqIEBwYXJhbQltaXhlZAlFaXRoZXIgc3Vi amVjdCB0ZXh0IChpZiB5b3Ugd2FudCB0byBtYWtlIHN1cmUgaXQgZXhpc3RzKSBv ciAwIGlmIHlvdSBkb24ndCBjYXJlCiogQHBhcmFtCWludGVnZXIJTWluaW11bSBh Y2NlcHRhYmxlIGNoYXJhY3RlciBsaW1pdCBmb3IgdGhlIG1lc3NhZ2UKKgoqIEBy ZXR1cm4JYm9vbGVhbgoqLwpmdW5jdGlvbiB2YWxpZGF0ZW1lc3NhZ2UobWVzc2Fn ZXRleHQsIHN1YmplY3R0ZXh0LCBtaW5jaGFycykKewoJaWYgKGlzX2tvbiB8fCBp c19zYWYgfHwgaXNfd2VidHYpCgl7CgkJLy8gaWdub3JlIGxlc3MtdGhhbi1jYXBh YmxlIGJyb3dzZXJzCgkJcmV0dXJuIHRydWU7Cgl9CgllbHNlIGlmIChzdWJqZWN0 dGV4dC5sZW5ndGggPCAxKQoJewoJCS8vIHN1YmplY3Qgbm90IHNwZWNpZmllZAoJ CWFsZXJ0KHZicGhyYXNlWydtdXN0X2VudGVyX3N1YmplY3QnXSk7CgkJcmV0dXJu IGZhbHNlOwoJfQoJZWxzZQoJewoJCXZhciBzdHJpcHBlZCA9IFBIUC50cmltKHN0 cmlwY29kZShtZXNzYWdldGV4dCwgZmFsc2UsIGlnbm9yZXF1b3RlY2hhcnMpKTsK CgkJaWYgKHN0cmlwcGVkLmxlbmd0aCA8IG1pbmNoYXJzKQoJCXsKCQkJLy8gbWlu aW11bSBtZXNzYWdlIGxlbmd0aCBub3QgbWV0CgkJCWFsZXJ0KGNvbnN0cnVjdF9w aHJhc2UodmJwaHJhc2VbJ21lc3NhZ2VfdG9vX3Nob3J0J10sIG1pbmNoYXJzKSk7 CgkJCXJldHVybiBmYWxzZTsKCQl9CgkJZWxzZSBpZiAodHlwZW9mKGRvY3VtZW50 LmZvcm1zLnZiZm9ybSkgIT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mKGRvY3VtZW50 LmZvcm1zLnZiZm9ybS5pbWFnZXN0YW1wKSAhPSAndW5kZWZpbmVkJykKCQl7CS8v IFRoaXMgZm9ybSBoYXMgaW1hZ2UgdmVyaWZpY2F0aW9uIGVuYWJsZWQKCQkJaWYg KGRvY3VtZW50LmZvcm1zLnZiZm9ybS5pbWFnZXN0YW1wLnZhbHVlLmxlbmd0aCAh PSA2KQoJCQl7CgkJCQlhbGVydCh2YnBocmFzZVsnY29tcGxldGVfaW1hZ2VfdmVy aWZpY2F0aW9uJ10pOwoJCQkJZG9jdW1lbnQuZm9ybXMudmJmb3JtLmltYWdlc3Rh bXAuZm9jdXMoKTsKCQkJCXJldHVybiBmYWxzZTsKCQkJfQoJCQllbHNlCgkJCXsK CQkJCXJldHVybiB0cnVlOwoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCS8vIGV2ZXJ5 dGhpbmcgc2VlbXMgb2sKCQkJcmV0dXJuIHRydWU7CgkJfQoJfQp9CgovKioKKiBT dHJpcHMgcXVvdGVzIGFuZCBiYmNvZGUgdGFncyBmcm9tIHRleHQKKgoqIEBwYXJh bQlzdHJpbmcJVGV4dCB0byBtYW5pcHVsYXRlCiogQHBhcmFtCWJvb2xlYW4JSWYg dHJ1ZSwgc3RyaXAgPHg+IG90aGVyd2lzZSBzdHJpcCBbeF0KKiBAcGFyYW0JYm9v bGVhbglJZiB0cnVlLCBzdHJpcCBhbGwgW3F1b3RlXS4uLmNvbnRlbnRzLi4uWy9x dW90ZV0KKgoqIEByZXR1cm4Jc3RyaW5nCiovCmZ1bmN0aW9uIHN0cmlwY29kZShz dHIsIGlzaHRtbCwgc3RyaXBxdW90ZXMpCnsKCWlmICghaXNfcmVnZXhwKQoJewoJ CXJldHVybiBzdHI7Cgl9CgoJaWYgKHN0cmlwcXVvdGVzKQoJewoJCXZhciBzdGFy dF90aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CgoJCXdoaWxlICgoc3RhcnRp bmRleCA9IFBIUC5zdHJpcG9zKHN0ciwgJ1txdW90ZScpKSAhPT0gZmFsc2UpCgkJ ewoJCQlpZiAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSBzdGFydF90aW1lID4gMjAw MCkKCQkJewoJCQkJLy8gd2hpbGUgbG9vcCBoYXMgYmVlbiBydW5uaW5nIGZvciBv dmVyIDIgc2Vjb25kcyBhbmQgaGFzIHByb2JhYmx5IGdvbmUgaW5maW5pdGUKCQkJ CWJyZWFrOwoJCQl9CgoJCQlpZiAoKHN0b3BpbmRleCA9IFBIUC5zdHJpcG9zKHN0 ciwgJ1svcXVvdGVdJykpICE9PSBmYWxzZSkKCQkJewoJCQkJZnJhZ21lbnQgPSBz dHIuc3Vic3RyKHN0YXJ0aW5kZXgsIHN0b3BpbmRleCAtIHN0YXJ0aW5kZXggKyA4 KTsKCQkJCXN0ciA9IHN0ci5yZXBsYWNlKGZyYWdtZW50LCAnJyk7CgkJCX0KCQkJ ZWxzZQoJCQl7CgkJCQlicmVhazsKCQkJfQoJCQlzdHIgPSBQSFAudHJpbShzdHIp OwoJCX0KCX0KCglpZiAoaXNodG1sKQoJewoJCS8vIGV4ZW1wdCBpbWFnZSB0YWdz IC0tIHRoZXkgbmVlZCB0byBjb3VudCBhcyBjaGFyYWN0ZXJzIGluIHRoZSBzdHJp bmcKCQkvLyBhcyB0aGUgZG8gYXMgQkIgY29kZXMKCQlzdHIgPSBzdHIucmVwbGFj ZSgvPGltZ1tePl0rc3JjPSIoW14iXSspIltePl0qPi9naSwgJyQxJyk7CgoJCXZh ciBodG1sMSA9IG5ldyBSZWdFeHAoIjwoXFx3KylbXj5dKj4iLCAnZ2knKTsKCQl2 YXIgaHRtbDIgPSBuZXcgUmVnRXhwKCI8XFwvXFx3Kz4iLCAnZ2knKTsKCgkJc3Ry ID0gc3RyLnJlcGxhY2UoaHRtbDEsICcnKTsKCQlzdHIgPSBzdHIucmVwbGFjZSho dG1sMiwgJycpOwoKCQl2YXIgaHRtbDMgPSBuZXcgUmVnRXhwKCcoJm5ic3A7KScs ICdnaScpOwoJCXN0ciA9IHN0ci5yZXBsYWNlKGh0bWwzLCAnICcpOwoJfQoJZWxz ZQoJewoJCXZhciBiYmNvZGUxID0gbmV3IFJlZ0V4cCgiXFxbKFxcdyspW15cXF1d KlxcXSIsICdnaScpOwoJCXZhciBiYmNvZGUyID0gbmV3IFJlZ0V4cCgiXFxbXFwv KFxcdyspXFxdIiwgJ2dpJyk7CgoJCXN0ciA9IHN0ci5yZXBsYWNlKGJiY29kZTEs ICcnKTsKCQlzdHIgPSBzdHIucmVwbGFjZShiYmNvZGUyLCAnJyk7Cgl9CgoJcmV0 dXJuIHN0cjsKfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8g dkJfUEhQX0VtdWxhdG9yIGNsYXNzCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCgovKioKKiBQSFAgRnVuY3Rpb24gRW11bGF0b3IgQ2xhc3MKKi8KZnVu Y3Rpb24gdkJfUEhQX0VtdWxhdG9yKCkKewp9CgovLyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQovLyB2Ql9QSFBfRW11bGF0b3IgTWV0aG9kcwoKLyoqCiog RmluZCBhIHN0cmluZyB3aXRoaW4gYSBzdHJpbmcgKGNhc2UgaW5zZW5zaXRpdmUp CioKKiBAcGFyYW0Jc3RyaW5nCUhheXN0YWNrCiogQHBhcmFtCXN0cmluZwlOZWVk bGUKKiBAcGFyYW0JaW50ZWdlcglPZmZzZXQKKgoqIEByZXR1cm4JbWl4ZWQJTm90 IGZvdW5kOiBmYWxzZSAvIEZvdW5kOiBpbnRlZ2VyIHBvc2l0aW9uCiovCnZCX1BI UF9FbXVsYXRvci5wcm90b3R5cGUuc3RyaXBvcyA9IGZ1bmN0aW9uKGhheXN0YWNr LCBuZWVkbGUsIG9mZnNldCkKewoJaWYgKHR5cGVvZiBvZmZzZXQgPT0gJ3VuZGVm aW5lZCcpCgl7CgkJb2Zmc2V0ID0gMDsKCX0KCglpbmRleCA9IGhheXN0YWNrLnRv TG93ZXJDYXNlKCkuaW5kZXhPZihuZWVkbGUudG9Mb3dlckNhc2UoKSwgb2Zmc2V0 KTsKCglyZXR1cm4gKGluZGV4ID09IC0xID8gZmFsc2UgOiBpbmRleCk7Cn0KCi8q KgoqIFRyaW1zIGxlYWRpbmcgd2hpdGVzcGFjZQoqCiogQHBhcmFtCXN0cmluZwlT dHJpbmcgdG8gdHJpbQoqCiogQHJldHVybglzdHJpbmcKKi8KdkJfUEhQX0VtdWxh dG9yLnByb3RvdHlwZS5sdHJpbSA9IGZ1bmN0aW9uKHN0cikKewoJcmV0dXJuIHN0 ci5yZXBsYWNlKC9eXHMrL2csICcnKTsKfQoKLyoqCiogVHJpbXMgdHJhaWxpbmcg d2hpdGVzcGFjZQoqCiogQHBhcmFtCXN0cmluZwlTdHJpbmcgdG8gdHJpbQoqCiog QHJldHVybglzdHJpbmcKKi8KdkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS5ydHJp bSA9IGZ1bmN0aW9uKHN0cikKewoJcmV0dXJuIHN0ci5yZXBsYWNlKC8oXHMrKSQv ZywgJycpOwp9CgovKioKKiBUcmltcyBsZWFkaW5nIGFuZCB0cmFpbGluZyB3aGl0 ZXNwYWNlCioKKiBAcGFyYW0Jc3RyaW5nCVN0cmluZyB0byB0cmltCioKKiBAcmV0 dXJuCXN0cmluZwoqLwp2Ql9QSFBfRW11bGF0b3IucHJvdG90eXBlLnRyaW0gPSBm dW5jdGlvbihzdHIpCnsKCXJldHVybiB0aGlzLmx0cmltKHRoaXMucnRyaW0oc3Ry KSk7Cn0KCi8qKgoqIEVtdWxhdGlvbiBvZiBQSFAncyBwcmVnX3F1b3RlKCkKKgoq IEBwYXJhbQlzdHJpbmcJU3RyaW5nIHRvIHByb2Nlc3MKKgoqIEByZXR1cm4Jc3Ry aW5nCiovCnZCX1BIUF9FbXVsYXRvci5wcm90b3R5cGUucHJlZ19xdW90ZSA9IGZ1 bmN0aW9uKHN0cikKewoJLy8gcmVwbGFjZSArIHsgfSAoICkgWyBdIHwgLyA/IF4g JCBcIC4gPSAhIDwgPiA6ICogd2l0aCBiYWNrc2xhc2grY2hhcmFjdGVyCglyZXR1 cm4gc3RyLnJlcGxhY2UoLyhcK3xce3xcfXxcKHxcKXxcW3xcXXxcfHxcL3xcP3xc XnxcJHxcXHxcLnxcPXxcIXxcPHxcPnxcOnxcKikvZywgIlxcJDEiKTsKfQoKLyoq CiogRW11bGF0ZXMgdW5odG1sc3BlY2lhbGNoYXJzIGluIHZCdWxsZXRpbgoqCiog QHBhcmFtCXN0cmluZwlTdHJpbmcgdG8gcHJvY2VzcwoqCiogQHJldHVybglzdHJp bmcKKi8KdkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS51bmh0bWxzcGVjaWFsY2hh cnMgPSBmdW5jdGlvbihzdHIpCnsKCWYgPSBuZXcgQXJyYXkoLyZsdDsvZywgLyZn dDsvZywgLyZxdW90Oy9nLCAvJmFtcDsvZyk7CglyID0gbmV3IEFycmF5KCc8Jywg Jz4nLCAnIicsICcmJyk7CgoJZm9yICh2YXIgaSBpbiBmKQoJewoJCXN0ciA9IHN0 ci5yZXBsYWNlKGZbaV0sIHJbaV0pOwoJfQoKCXJldHVybiBzdHI7Cn0KCi8qKgoq IFVuZXNjYXBlIENEQVRBIGZyb20gdkJfQUpBWF9YTUxfQnVpbGRlciBQSFAgY2xh c3MKKgoqIEBwYXJhbQlzdHJpbmcJRXNjYXBlZCBDREFUQQoqCiogQHJldHVybglz dHJpbmcKKi8KdkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS51bmVzY2FwZV9jZGF0 YSA9IGZ1bmN0aW9uKHN0cikKewoJdmFyIHIxID0gLzxcPVwhXD1cW1w9Q1w9RFw9 QVw9VFw9QVw9XFsvZzsKCXZhciByMiA9IC9cXVw9XF1cPT4vZzsKCglyZXR1cm4g c3RyLnJlcGxhY2UocjEsICc8IVtDREFUQVsnKS5yZXBsYWNlKHIyLCAnXV0+Jyk7 Cn0KCi8qKgoqIEVtdWxhdGVzIFBIUCdzIGh0bWxzcGVjaWFsY2hhcnMoKQoqCiog QHBhcmFtCXN0cmluZwlTdHJpbmcgdG8gcHJvY2VzcwoqCiogQHJldHVybglzdHJp bmcKKi8KdkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS5odG1sc3BlY2lhbGNoYXJz ID0gZnVuY3Rpb24oc3RyKQp7CgkvL3ZhciBmID0gbmV3IEFycmF5KC8mKD8hI1sw LTldKzspL2csIC88L2csIC8+L2csIC8iL2cpOwoJdmFyIGYgPSBuZXcgQXJyYXko CgkJKGlzX21hYyAmJiBpc19pZSA/IG5ldyBSZWdFeHAoJyYnLCAnZycpIDogbmV3 IFJlZ0V4cCgnJig/ISNbMC05XSs7KScsICdnJykpLAoJCW5ldyBSZWdFeHAoJzwn LCAnZycpLAoJCW5ldyBSZWdFeHAoJz4nLCAnZycpLAoJCW5ldyBSZWdFeHAoJyIn LCAnZycpCgkpOwoJdmFyIHIgPSBuZXcgQXJyYXkoCgkJJyZhbXA7JywKCQknJmx0 OycsCgkJJyZndDsnLAoJCScmcXVvdDsnCgkpOwoKCWZvciAodmFyIGkgPSAwOyBp IDwgZi5sZW5ndGg7IGkrKykKCXsKCQlzdHIgPSBzdHIucmVwbGFjZShmW2ldLCBy W2ldKTsKCX0KCglyZXR1cm4gc3RyOwp9CgovKioKKiBTZWFyY2hlcyBhbiBhcnJh eSBmb3IgYSB2YWx1ZQoqCiogQHBhcmFtCXN0cmluZwlOZWVkbGUKKiBAcGFyYW0J YXJyYXkJSGF5c3RhY2sKKiBAcGFyYW0JYm9vbGVhbglDYXNlIGluc2Vuc2l0aXZl CioKKiBAcmV0dXJuCWludGVnZXIJTm90IGZvdW5kOiAtMSAvIEZvdW5kOiBpbnRl Z2VyIGluZGV4CiovCnZCX1BIUF9FbXVsYXRvci5wcm90b3R5cGUuaW5fYXJyYXkg PSBmdW5jdGlvbihpbmVlZGxlLCBoYXlzdGFjaywgY2FzZWluc2Vuc2l0aXZlKQp7 Cgl2YXIgbmVlZGxlID0gbmV3IFN0cmluZyhpbmVlZGxlKTsKCglpZiAoY2FzZWlu c2Vuc2l0aXZlKQoJewoJCW5lZWRsZSA9IG5lZWRsZS50b0xvd2VyQ2FzZSgpOwoJ CWZvciAodmFyIGkgaW4gaGF5c3RhY2spCgkJewoJCQlpZiAoaGF5c3RhY2tbaV0u dG9Mb3dlckNhc2UoKSA9PSBuZWVkbGUpCgkJCXsKCQkJCXJldHVybiBpOwoJCQl9 CgkJfQoJfQoJZWxzZQoJewoJCWZvciAodmFyIGkgaW4gaGF5c3RhY2spCgkJewoJ CQlpZiAoaGF5c3RhY2tbaV0gPT0gbmVlZGxlKQoJCQl7CgkJCQlyZXR1cm4gaTsK CQkJfQoJCX0KCX0KCXJldHVybiAtMTsKfQoKLyoqCiogRW11bGF0ZXMgUEhQJ3Mg c3RycGFkKCkKKgoqIEBwYXJhbQlzdHJpbmcJVGV4dCB0byBwYWQKKiBAcGFyYW0J aW50ZWdlcglMZW5ndGggdG8gcGFkCiogQHBhcmFtCXN0cmluZwlTdHJpbmcgd2l0 aCB3aGljaCB0byBwYWQKKgoqIEByZXR1cm4Jc3RyaW5nCiovCnZCX1BIUF9FbXVs YXRvci5wcm90b3R5cGUuc3RyX3BhZCA9IGZ1bmN0aW9uKHRleHQsIGxlbmd0aCwg cGFkc3RyaW5nKQp7Cgl0ZXh0ID0gbmV3IFN0cmluZyh0ZXh0KTsKCXBhZHN0cmlu ZyA9IG5ldyBTdHJpbmcocGFkc3RyaW5nKTsKCglpZiAodGV4dC5sZW5ndGggPCBs ZW5ndGgpCgl7CgkJcGFkdGV4dCA9IG5ldyBTdHJpbmcocGFkc3RyaW5nKTsKCgkJ d2hpbGUgKHBhZHRleHQubGVuZ3RoIDwgKGxlbmd0aCAtIHRleHQubGVuZ3RoKSkK CQl7CgkJCXBhZHRleHQgKz0gcGFkc3RyaW5nOwoJCX0KCgkJdGV4dCA9IHBhZHRl eHQuc3Vic3RyKDAsIChsZW5ndGggLSB0ZXh0Lmxlbmd0aCkpICsgdGV4dDsKCX0K CglyZXR1cm4gdGV4dDsKfQoKLyoqCiogQSBzb3J0IG9mIGVtdWxhdGlvbiBvZiBQ SFAncyB1cmxlbmNvZGUgLSBub3QgMTAwJSB0aGUgc2FtZSwgYnV0IGFjY29tcGxp c2hlcyB0aGUgc2FtZSB0aGluZwoqCiogQHBhcmFtCXN0cmluZwlTdHJpbmcgdG8g ZW5jb2RlCioKKiBAcmV0dXJuCXN0cmluZwoqLwp2Ql9QSFBfRW11bGF0b3IucHJv dG90eXBlLnVybGVuY29kZSA9IGZ1bmN0aW9uKHRleHQpCnsKCXRleHQgPSB0ZXh0 LnRvU3RyaW5nKCk7CgoJLy8gdGhpcyBlc2NhcGVzIDEyOCAtIDI1NSwgYXMgSlMg dXNlcyB0aGUgdW5pY29kZSBjb2RlIHBvaW50cyBmb3IgdGhlbS4KCS8vIFRoaXMg Y2F1c2VzIHByb2JsZW1zIHdpdGggc3VibWl0dGluZyB0ZXh0IHZpYSBBSkFYIHdp dGggdGhlIFVURi04IGNoYXJzZXQuCgl2YXIgbWF0Y2hlcyA9IHRleHQubWF0Y2go L1tceDkwLVx4RkZdL2cpOwoJaWYgKG1hdGNoZXMpCgl7CgkJZm9yICh2YXIgbWF0 Y2hpZCA9IDA7IG1hdGNoaWQgPCBtYXRjaGVzLmxlbmd0aDsgbWF0Y2hpZCsrKQoJ CXsKCQkJdmFyIGNoYXJfY29kZSA9IG1hdGNoZXNbbWF0Y2hpZF0uY2hhckNvZGVB dCgwKTsKCQkJdGV4dCA9IHRleHQucmVwbGFjZShtYXRjaGVzW21hdGNoaWRdLCAn JXUwMCcgKyAoY2hhcl9jb2RlICYgMHhGRikudG9TdHJpbmcoMTYpLnRvVXBwZXJD YXNlKCkpOwoJCX0KCX0KCglyZXR1cm4gZXNjYXBlKHRleHQpLnJlcGxhY2UoL1wr L2csICIlMkIiKTsKfQoKLyoqCiogV29ya3MgYSBiaXQgbGlrZSB1Y2ZpcnN0LCBi dXQgd2l0aCBzb21lIGV4dHJhIG9wdGlvbnMKKgoqIEBwYXJhbQlzdHJpbmcJU3Ry aW5nIHdpdGggd2hpY2ggdG8gd29yawoqIEBwYXJhbQlzdHJpbmcJQ3V0IG9mZiBz dHJpbmcgYmVmb3JlIGZpcnN0IG9jY3VyZW5jZSBvZiB0aGlzIHN0cmluZwoqCiog QHJldHVybglzdHJpbmcKKi8KdkJfUEhQX0VtdWxhdG9yLnByb3RvdHlwZS51Y2Zp cnN0ID0gZnVuY3Rpb24oc3RyLCBjdXRvZmYpCnsKCWlmICh0eXBlb2YgY3V0b2Zm ICE9ICd1bmRlZmluZWQnKQoJewoJCXZhciBjdXRwb3MgPSBzdHIuaW5kZXhPZihj dXRvZmYpOwoJCWlmIChjdXRwb3MgPiAwKQoJCXsKCQkJc3RyID0gc3RyLnN1YnN0 cigwLCBjdXRwb3MpOwoJCX0KCX0KCglzdHIgPSBzdHIuc3BsaXQoJyAnKTsKCWZv ciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKQoJewoJCXN0cltpXSA9 IHN0cltpXS5zdWJzdHIoMCwgMSkudG9VcHBlckNhc2UoKSArIHN0cltpXS5zdWJz dHIoMSk7Cgl9CglyZXR1cm4gc3RyLmpvaW4oJyAnKTsKfQoKLy8gaW5pdGlhbGl6 ZSB0aGUgUEhQIGVtdWxhdG9yCnZhciBQSFAgPSBuZXcgdkJfUEhQX0VtdWxhdG9y KCk7CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyB2Ql9BSkFY X0hhbmRsZXIKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCi8qKgoq IFhNTCBTZW5kZXIgQ2xhc3MKKgoqIEBwYXJhbQlib29sZWFuCVNob3VsZCBjb25u ZWN0aW9ucyBiZSBhc3luY3Jvbm91cz8KKi8KZnVuY3Rpb24gdkJfQUpBWF9IYW5k bGVyKGFzeW5jKQp7CgkvKioKCSogU2hvdWxkIGNvbm5lY3Rpb25zIGJlIGFzeW5j aHJvbm91cz8KCSoKCSogQHZhcglib29sZWFuCgkqLwoJdGhpcy5hc3luYyA9IGFz eW5jID8gdHJ1ZSA6IGZhbHNlOwp9CgovLyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQovLyB2Ql9BSkFYX0hhbmRsZXIgbWV0aG9kcwoKLyoqCiogSW5pdGlh bGl6ZXMgdGhlIFhNTCBoYW5kbGVyCioKKiBAcmV0dXJuCWJvb2xlYW4JVHJ1ZSBp ZiBoYW5kbGVyIGNyZWF0ZWQgT0sKKi8KdkJfQUpBWF9IYW5kbGVyLnByb3RvdHlw ZS5pbml0ID0gZnVuY3Rpb24oKQp7CglpZiAodHlwZW9mIHZiX2Rpc2FibGVfYWph eCAhPSAndW5kZWZpbmVkJyAmJiB2Yl9kaXNhYmxlX2FqYXggPT0gMikKCXsKCQkv LyBkaXNhYmxlIGFsbCBhamF4IGZlYXR1cmVzCgkJcmV0dXJuIGZhbHNlOwoJfQoK CXRyeQoJewoJCXRoaXMuaGFuZGxlciA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwoJ CXJldHVybiAodGhpcy5oYW5kbGVyLnNldFJlcXVlc3RIZWFkZXIgPyB0cnVlIDog ZmFsc2UpOwoJfQoJY2F0Y2goZSkKCXsKCQl0cnkKCQl7CgkJCXRoaXMuaGFuZGxl ciA9IGV2YWwoIm5ldyBBIiArICJjdGl2IiArICJlWCIgKyAiT2IiICsgImplY3Qo J01pY3IiICsgIm9zb2Z0LlhNIiArICJMSFRUUCcpOyIpOwoJCQlyZXR1cm4gdHJ1 ZTsKCQl9CgkJY2F0Y2goZSkKCQl7CgkJCXJldHVybiBmYWxzZTsKCQl9Cgl9Cn0K Ci8qKgoqIERldGVjdHMgaWYgdGhlIGJyb3dzZXIgaXMgZnVsbHkgY29tcGF0aWJs ZQoqCiogQHJldHVybglib29sZWFuCiovCnZCX0FKQVhfSGFuZGxlci5wcm90b3R5 cGUuaXNfY29tcGF0aWJsZSA9IGZ1bmN0aW9uKCkKewoJaWYgKHR5cGVvZiB2Yl9k aXNhYmxlX2FqYXggIT0gJ3VuZGVmaW5lZCcgJiYgdmJfZGlzYWJsZV9hamF4ID09 IDIpCgl7CgkJLy8gZGlzYWJsZSBhbGwgYWpheCBmZWF0dXJlcwoJCXJldHVybiBm YWxzZTsKCX0KCglpZiAoaXNfaWUgJiYgIWlzX2llNCkgeyByZXR1cm4gdHJ1ZTsg fQoJZWxzZSBpZiAodHlwZW9mIFhNTEh0dHBSZXF1ZXN0ICE9ICd1bmRlZmluZWQn KQoJewoJCXRyeSB7IHJldHVybiBYTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUuc2V0 UmVxdWVzdEhlYWRlciA/IHRydWUgOiBmYWxzZTsgfQoJCWNhdGNoKGUpCgkJewoJ CQl0cnkgeyB2YXIgdGVzdGVyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHJldHVy biB0ZXN0ZXIuc2V0UmVxdWVzdEhlYWRlciA/IHRydWUgOiBmYWxzZTsgfQoJCQlj YXRjaChlKSB7IHJldHVybiBmYWxzZTsgfQoJCX0KCX0KCWVsc2UgeyByZXR1cm4g ZmFsc2U7IH0KfQoKLyoqCiogQ2hlY2tzIGlmIHRoZSBzeXN0ZW0gaXMgcmVhZHkK KgoqIEByZXR1cm4JYm9vbGVhbglGYWxzZSBpZiByZWFkeQoqLwp2Ql9BSkFYX0hh bmRsZXIucHJvdG90eXBlLm5vdF9yZWFkeSA9IGZ1bmN0aW9uKCkKewoJcmV0dXJu ICh0aGlzLmhhbmRsZXIucmVhZHlTdGF0ZSAmJiAodGhpcy5oYW5kbGVyLnJlYWR5 U3RhdGUgPCA0KSk7Cn0KCi8qKgoqIE9uUmVhZHlTdGF0ZUNoYW5nZSBldmVudCBo YW5kbGVyCioKKiBAcGFyYW0JZnVuY3Rpb24KKi8KdkJfQUpBWF9IYW5kbGVyLnBy b3RvdHlwZS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbihldmVudCkKewoJ aWYgKCF0aGlzLmhhbmRsZXIpCgl7CgkJaWYgICghdGhpcy5pbml0KCkpCgkJewoJ CQlyZXR1cm4gZmFsc2U7CgkJfQoJfQoJaWYgKHR5cGVvZiBldmVudCA9PSAnZnVu Y3Rpb24nKQoJewoJCXRoaXMuaGFuZGxlci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBl dmVudDsKCX0KCWVsc2UKCXsKCQlhbGVydCgnWE1MIFNlbmRlciBPblJlYWR5U3Rh dGUgZXZlbnQgaXMgbm90IGEgZnVuY3Rpb24nKTsKCX0KfQoKLyoqCiogU2VuZHMg ZGF0YQoqCiogQHBhcmFtCXN0cmluZwlEZXN0aW5hdGlvbiBVUkwKKiBAcGFyYW0J c3RyaW5nCVJlcXVlc3QgRGF0YQoqCiogQHJldHVybgltaXhlZAlSZXR1cm4gbWVz c2FnZQoqLwp2Ql9BSkFYX0hhbmRsZXIucHJvdG90eXBlLnNlbmQgPSBmdW5jdGlv bihkZXN0dXJsLCBkYXRhc3RyZWFtKQp7CglpZiAoIXRoaXMuaGFuZGxlcikKCXsK CQlpZiAoIXRoaXMuaW5pdCgpKQoJCXsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCX0K CWlmICghdGhpcy5ub3RfcmVhZHkoKSkKCXsKCQl0aGlzLmhhbmRsZXIub3Blbign UE9TVCcsIGRlc3R1cmwsIHRoaXMuYXN5bmMpOwoJCXRoaXMuaGFuZGxlci5zZXRS ZXF1ZXN0SGVhZGVyKCdDb250ZW50LVR5cGUnLCAnYXBwbGljYXRpb24veC13d3ct Zm9ybS11cmxlbmNvZGVkJyk7CgkJdGhpcy5oYW5kbGVyLnNlbmQoZGF0YXN0cmVh bSArICcmcz0nICsgZmV0Y2hfc2Vzc2lvbmhhc2goKSk7CgoJCWlmICghdGhpcy5h c3luYyAmJiB0aGlzLmhhbmRsZXIucmVhZHlTdGF0ZSA9PSA0ICYmIHRoaXMuaGFu ZGxlci5zdGF0dXMgPT0gMjAwKQoJCXsKCQkJcmV0dXJuIHRydWU7CgkJfQoJfQoJ cmV0dXJuIGZhbHNlOwp9CgovKioKKiBGZXRjaGVzIHRoZSBjb250ZW50cyBvZiBh biBYTUwgbm9kZQoqCiogQHBhcmFtCW9iamVjdAlYTUwgbm9kZQoqCiogQHJldHVy bglzdHJpbmcJWE1MIG5vZGUgY29udGVudHMKKi8KdkJfQUpBWF9IYW5kbGVyLnBy b3RvdHlwZS5mZXRjaF9kYXRhID0gZnVuY3Rpb24oeG1sX25vZGUpCnsKCWlmICh4 bWxfbm9kZSAmJiB4bWxfbm9kZS5maXJzdENoaWxkICYmIHhtbF9ub2RlLmZpcnN0 Q2hpbGQubm9kZVZhbHVlKQoJewoJCXJldHVybiBQSFAudW5lc2NhcGVfY2RhdGEo eG1sX25vZGUuZmlyc3RDaGlsZC5ub2RlVmFsdWUpOwoJfQoJZWxzZQoJewoJCXJl dHVybiAnJzsKCX0KfQoKLy8gd2UgY2FuIGNoZWNrIHRoaXMgdmFyaWFibGUgdG8g c2VlIGlmIGJyb3dzZXIgaXMgQUpBWCBjb21wYXRpYmxlCnZhciBBSkFYX0NvbXBh dGlibGUgPSB2Ql9BSkFYX0hhbmRsZXIucHJvdG90eXBlLmlzX2NvbXBhdGlibGUo KTsKCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIHZCX0hpZGRl bl9Gb3JtCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgovKioKKiBG b3JtIEdlbmVyYXRvciBDbGFzcwoqCiogQnVpbGRzIGEgZm9ybSBmaWxsZWQgd2l0 aCBoaWRkZW4gZmllbGRzIGZvciBpbnZpc2libGUgc3VibWl0IHZpYSBQT1NUCioK KiBAcGFyYW0Jc3RyaW5nCVNjcmlwdCAobXlfdGFyZ2V0X3NjcmlwdC5waHApCiov CmZ1bmN0aW9uIHZCX0hpZGRlbl9Gb3JtKHNjcmlwdCkKewoJdGhpcy5hY3Rpb24g PSBzY3JpcHQ7Cgl0aGlzLnZhcmlhYmxlcyA9IG5ldyBBcnJheSgpOwp9CgovLyA9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQovLyB2Ql9IaWRkZW5fRm9ybSBt ZXRob2RzCgovKioKKiBBZGRzIGEgaGlkZGVuIGlucHV0IGZpZWxkIHRvIHRoZSBm b3JtIG9iamVjdAoqCiogQHBhcmFtCXN0cmluZwlOYW1lIGF0dHJpYnV0ZQoqIEBw YXJhbQlzdHJpbmcJVmFsdWUgYXR0cmlidXRlCiovCnZCX0hpZGRlbl9Gb3JtLnBy b3RvdHlwZS5hZGRfdmFyaWFibGUgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkKewoJ dGhpcy52YXJpYWJsZXNbdGhpcy52YXJpYWJsZXMubGVuZ3RoXSA9IG5ldyBBcnJh eShuYW1lLCB2YWx1ZSk7Cn07CgovKioKKiBGZXRjaGVzIGFsbCBmb3JtIGVsZW1l bnRzIGluc2lkZSBhbiBIVE1MIGVsZW1lbnQgYW5kIHBlcmZvcm1zICdhZGRfaW5w dXQoKScgb24gdGhlbQoqCiogQHBhcmFtCW9iamVjdAlIVE1MIGVsZW1lbnQgdG8g c2VhcmNoCiovCnZCX0hpZGRlbl9Gb3JtLnByb3RvdHlwZS5hZGRfdmFyaWFibGVz X2Zyb21fb2JqZWN0ID0gZnVuY3Rpb24ob2JqKQp7Cgl2YXIgaW5wdXRzID0gZmV0 Y2hfdGFncyhvYmosICdpbnB1dCcpOwoJZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1 dHMubGVuZ3RoOyBpKyspCgl7CgkJc3dpdGNoIChpbnB1dHNbaV0udHlwZSkKCQl7 CgkJCWNhc2UgJ2NoZWNrYm94JzoKCQkJY2FzZSAncmFkaW8nOgoJCQkJaWYgKGlu cHV0c1tpXS5jaGVja2VkKQoJCQkJewoJCQkJCXRoaXMuYWRkX3ZhcmlhYmxlKGlu cHV0c1tpXS5uYW1lLCBpbnB1dHNbaV0udmFsdWUpOwoJCQkJfQoJCQkJYnJlYWs7 CgkJCWNhc2UgJ3RleHQnOgoJCQljYXNlICdoaWRkZW4nOgoJCQljYXNlICdwYXNz d29yZCc6CgkJCQl0aGlzLmFkZF92YXJpYWJsZShpbnB1dHNbaV0ubmFtZSwgaW5w dXRzW2ldLnZhbHVlKTsKCQkJCWJyZWFrOwoJCQlkZWZhdWx0OgoJCQkJY29udGlu dWU7CgkJfQoJfQoKCXZhciB0ZXh0YXJlYXMgPSBmZXRjaF90YWdzKG9iaiwgJ3Rl eHRhcmVhJyk7Cglmb3IgKHZhciBpID0gMDsgaSA8IHRleHRhcmVhcy5sZW5ndGg7 IGkrKykKCXsKCQl0aGlzLmFkZF92YXJpYWJsZSh0ZXh0YXJlYXNbaV0ubmFtZSwg dGV4dGFyZWFzW2ldLnZhbHVlKTsKCX0KCgl2YXIgc2VsZWN0cyA9IGZldGNoX3Rh Z3Mob2JqLCAnc2VsZWN0Jyk7Cglmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdHMu bGVuZ3RoOyBpKyspCgl7CgkJaWYgKHNlbGVjdHNbaV0ubXVsdGlwbGUpCgkJewoJ CQlmb3IgKHZhciBqID0gMDsgaiA8IHNlbGVjdHNbaV0ub3B0aW9ucy5sZW5ndGg7 IGorKykKCQkJewoJCQkJaWYgKHNlbGVjdHNbaV0ub3B0aW9uc1tqXS5zZWxlY3Rl ZCkKCQkJCXsKCQkJCQl0aGlzLmFkZF92YXJpYWJsZShzZWxlY3RzW2ldLm5hbWUs IHNlbGVjdHNbaV0ub3B0aW9uc1tqXS52YWx1ZSk7CgkJCQl9CgkJCX0KCQl9CgkJ ZWxzZQoJCXsKCQkJdGhpcy5hZGRfdmFyaWFibGUoc2VsZWN0c1tpXS5uYW1lLCBz ZWxlY3RzW2ldLm9wdGlvbnNbc2VsZWN0c1tpXS5zZWxlY3RlZEluZGV4XS52YWx1 ZSk7CgkJfQoJfQp9OwoKLyoqCiogRmV0Y2hlcyBhIHZhcmlhYmxlIHZhbHVlCioK KiBAcGFyYW0Jc3RyaW5nCVZhcmlhYmxlIG5hbWUKKgoqIEByZXR1cm4JbWl4ZWQJ VmFyaWFibGUgdmFsdWUKKi8KdkJfSGlkZGVuX0Zvcm0ucHJvdG90eXBlLmZldGNo X3ZhcmlhYmxlID0gZnVuY3Rpb24odmFybmFtZSkKewoJZm9yICh2YXIgaSA9IDA7 IGkgPCB0aGlzLnZhcmlhYmxlcy5sZW5ndGg7IGkrKykKCXsKCQlpZiAodGhpcy52 YXJpYWJsZXNbaV1bMF0gPT0gdmFybmFtZSkKCQl7CgkJCXJldHVybiB0aGlzLnZh cmlhYmxlc1tpXVsxXTsKCQl9Cgl9CgoJcmV0dXJuIG51bGw7Cn07CgovKioKKiBT dWJtaXRzIHRoZSBoaWRkZW4gZm9ybSBvYmplY3QKKi8KdkJfSGlkZGVuX0Zvcm0u cHJvdG90eXBlLnN1Ym1pdF9mb3JtID0gZnVuY3Rpb24oKQp7Cgl0aGlzLmZvcm0g PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdmb3JtJyk7Cgl0aGlzLmZvcm0ubWV0 aG9kID0gJ3Bvc3QnOwoJdGhpcy5mb3JtLmFjdGlvbiA9IHRoaXMuYWN0aW9uOwoK CWZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy52YXJpYWJsZXMubGVuZ3RoOyBpKysp Cgl7CgkJdmFyIGlucHV0b2JqID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5w dXQnKTsKCgkJaW5wdXRvYmoudHlwZSAgPSAnaGlkZGVuJzsKCQlpbnB1dG9iai5u YW1lICA9IHRoaXMudmFyaWFibGVzW2ldWzBdOwoJCWlucHV0b2JqLnZhbHVlID0g dGhpcy52YXJpYWJsZXNbaV1bMV07CgoJCXRoaXMuZm9ybS5hcHBlbmRDaGlsZChp bnB1dG9iaik7Cgl9CgoJZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0aGlzLmZv cm0pLnN1Ym1pdCgpOwp9OwoKLyoqCiogQnVpbGRzIGEgVVJJIHF1ZXJ5IHN0cmlu ZyBmcm9tIHRoZSBnaXZlbiB2YXJpYWJsZXMKKi8KdkJfSGlkZGVuX0Zvcm0ucHJv dG90eXBlLmJ1aWxkX3F1ZXJ5X3N0cmluZyA9IGZ1bmN0aW9uKCkKewoJdmFyIHF1 ZXJ5X3N0cmluZyA9ICcnOwoKCWZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy52YXJp YWJsZXMubGVuZ3RoOyBpKyspCgl7CgkJcXVlcnlfc3RyaW5nICs9IHRoaXMudmFy aWFibGVzW2ldWzBdICsgJz0nICsgUEhQLnVybGVuY29kZSh0aGlzLnZhcmlhYmxl c1tpXVsxXSkgKyAnJic7Cgl9CgoJcmV0dXJuIHF1ZXJ5X3N0cmluZzsKfQoKLyoq CiogTGVnYWN5IGZ1bmN0aW9ucyBmb3IgYmFja3dhcmQgY29tcGF0YWJpbGl0eQoq Lwp2Ql9IaWRkZW5fRm9ybS5wcm90b3R5cGUuYWRkX2lucHV0ID0gdkJfSGlkZGVu X0Zvcm0ucHJvdG90eXBlLmFkZF92YXJpYWJsZTsKdkJfSGlkZGVuX0Zvcm0ucHJv dG90eXBlLmFkZF9pbnB1dHNfZnJvbV9vYmplY3QgPSB2Ql9IaWRkZW5fRm9ybS5w cm90b3R5cGUuYWRkX3ZhcmlhYmxlc19mcm9tX29iamVjdDsKCi8vICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIFdpbmRvdyBvcGVuZXJzIGFuZCBpbnN0 YW50IG1lc3NlbmdlciB3cmFwcGVycwoKLyoqCiogT3BlbnMgYSBnZW5lcmljIGJy b3dzZXIgd2luZG93CioKKiBAcGFyYW0Jc3RyaW5nCVVSTAoqIEBwYXJhbQlpbnRl Z2VyCVdpZHRoCiogQHBhcmFtCWludGVnZXIJSGVpZ2h0CiogQHBhcmFtCXN0cmlu ZwlPcHRpb25hbCBXaW5kb3cgSUQKKi8KZnVuY3Rpb24gb3BlbldpbmRvdyh1cmws IHdpZHRoLCBoZWlnaHQsIHdpbmRvd2lkKQp7CglyZXR1cm4gd2luZG93Lm9wZW4o CgkJdXJsLAoJCSh0eXBlb2Ygd2luZG93aWQgPT0gJ3VuZGVmaW5lZCcgPyAndkJQ b3B1cCcgOiB3aW5kb3dpZCksCgkJJ3N0YXR1c2Jhcj1ubyxtZW51YmFyPW5vLHRv b2xiYXI9bm8sc2Nyb2xsYmFycz15ZXMscmVzaXphYmxlPXllcycKCQkrICh0eXBl b2Ygd2lkdGggIT0gJ3VuZGVmaW5lZCcgPyAoJyx3aWR0aD0nICsgd2lkdGgpIDog JycpICsgKHR5cGVvZiBoZWlnaHQgIT0gJ3VuZGVmaW5lZCcgPyAoJyxoZWlnaHQ9 JyArIGhlaWdodCkgOiAnJykKCSk7Cn0KCi8qKgoqIE9wZW5zIGNvbnRyb2wgcGFu ZWwgaGVscCB3aW5kb3cKKgoqIEBwYXJhbQlzdHJpbmcJU2NyaXB0IG5hbWUKKiBA cGFyYW0Jc3RyaW5nCUFjdGlvbiB0eXBlCiogQHBhcmFtCXN0cmluZwlPcHRpb24g dmFsdWUKKgoqIEByZXR1cm4Jd2luZG93CiovCmZ1bmN0aW9uIGpzX29wZW5faGVs cChzY3JpcHRuYW1lLCBhY3Rpb250eXBlLCBvcHRpb252YWwpCnsKCXJldHVybiBv cGVuV2luZG93KAoJCSdoZWxwLnBocD9zPScgKyBTRVNTSU9OSEFTSCArICcmZG89 YW5zd2VyJnBhZ2U9JyArIHNjcmlwdG5hbWUgKyAnJnBhZ2VhY3Rpb249JyArIGFj dGlvbnR5cGUgKyAnJm9wdGlvbj0nICsgb3B0aW9udmFsLAoJCTYwMCwgNDUwLCAn aGVscHdpbmRvdycKCSk7Cn0KCi8qKgoqIE9wZW5zIGEgd2luZG93IHRvIHNob3cg YSBsaXN0IG9mIGF0dGFjaG1lbnRzIGluIGEgdGhyZWFkIChtaXNjLnBocD9kbz1z aG93YXR0YWNobWVudHMpCioKKiBAcGFyYW0JaW50ZWdlcglUaHJlYWQgSUQKKgoq IEByZXR1cm4Jd2luZG93CiovCmZ1bmN0aW9uIGF0dGFjaG1lbnRzKHRocmVhZGlk KQp7CglyZXR1cm4gb3BlbldpbmRvdygKCQknbWlzYy5waHA/JyArIFNFU1NJT05V UkwgKyAnZG89c2hvd2F0dGFjaG1lbnRzJnQ9JyArIHRocmVhZGlkLAoJCTQ4MCwg MzAwCgkpOwp9CgovKioKKiBPcGVucyBhIHdpbmRvdyB0byBzaG93IGEgbGlzdCBv ZiBwb3N0ZXJzIGluIGEgdGhyZWFkIChtaXNjLnBocD9kbz13aG9wb3N0ZWQpCioK KiBAcGFyYW0JaW50ZWdlcglUaHJlYWQgSUQKKgoqIEByZXR1cm4Jd2luZG93Ciov CmZ1bmN0aW9uIHdobyh0aHJlYWRpZCkKewoJcmV0dXJuIG9wZW5XaW5kb3coCgkJ J21pc2MucGhwPycgKyBTRVNTSU9OVVJMICsgJ2RvPXdob3Bvc3RlZCZ0PScgKyB0 aHJlYWRpZCwKCQkyMzAsIDMwMAoJKTsKfQoKLyoqCiogT3BlbnMgYW4gSU0gV2lu ZG93CioKKiBAcGFyYW0Jc3RyaW5nCUlNIHR5cGUKKiBAcGFyYW0JaW50ZWdlcglV c2VyIElECiogQHBhcmFtCWludGVnZXIJV2lkdGggb2Ygd2luZG93CiogQHBhcmFt CWludGVnZXIJSGVpZ2h0IG9mIHdpbmRvdwoqCiogQHJldHVybgl3aW5kb3cKKi8K ZnVuY3Rpb24gaW13aW5kb3coaW10eXBlLCB1c2VyaWQsIHdpZHRoLCBoZWlnaHQp CnsKCXJldHVybiBvcGVuV2luZG93KAoJCSdzZW5kbWVzc2FnZS5waHA/JyArIFNF U1NJT05VUkwgKyAnZG89aW0mdHlwZT0nICsgaW10eXBlICsgJyZ1PScgKyB1c2Vy aWQsCgkJd2lkdGgsIGhlaWdodAoJKTsKfQoKLyoqCiogU2VuZHMgYW4gTVNOIG1l c3NhZ2UKKgoqIEBwYXJhbQlzdHJpbmcJVGFyZ2V0IE1TTiBoYW5kbGUKKgoqIEBy ZXR1cm4JYm9vbGVhbglmYWxzZQoqLwpmdW5jdGlvbiBTZW5kTVNOTWVzc2FnZShu YW1lKQp7CglpZiAoIWlzX2llKQoJewoJCWFsZXJ0KHZicGhyYXNlWydtc25fZnVu Y3Rpb25zX29ubHlfd29ya19pbl9pZSddKTsKCQlyZXR1cm4gZmFsc2U7Cgl9Cgll bHNlCgl7CgkJTXNnck9iai5JbnN0YW50TWVzc2FnZShuYW1lKTsKCQlyZXR1cm4g ZmFsc2U7Cgl9Cn0KCi8qKgoqIEFkZHMgYW4gTVNOIENvbnRhY3QgKHJlcXVpcmVz IE1TTikKKgoqIEBwYXJhbQlzdHJpbmcJTVNOIGhhbmRsZQoqCiogQHJldHVybgli b29sZWFuCWZhbHNlCiovCmZ1bmN0aW9uIEFkZE1TTkNvbnRhY3QobmFtZSkKewoJ aWYgKCFpc19pZSkKCXsKCQlhbGVydCh2YnBocmFzZVsnbXNuX2Z1bmN0aW9uc19v bmx5X3dvcmtfaW5faWUnXSk7CgkJcmV0dXJuIGZhbHNlOwoJfQoJZWxzZQoJewoJ CU1zZ3JPYmouQWRkQ29udGFjdCgwLCBuYW1lKTsKCQlyZXR1cm4gZmFsc2U7Cgl9 Cn0KCi8qKgoqIERldGVjdHMgQ2Fwcy1Mb2NrIHdoZW4gYSBrZXkgaXMgcHJlc3Nl ZAoqCiogQHBhcmFtCWV2ZW50CioKKiBAcmV0dXJuCWJvb2xlYW4JVHJ1ZSBpZiBD YXBzLUxvY2sgaXMgb24KKi8KZnVuY3Rpb24gZGV0ZWN0X2NhcHNfbG9jayhlKQp7 CgllID0gKGUgPyBlIDogd2luZG93LmV2ZW50KTsKCgl2YXIga2V5Y29kZSA9IChl LndoaWNoID8gZS53aGljaCA6IChlLmtleUNvZGUgPyBlLmtleUNvZGUgOiAoZS5j aGFyQ29kZSA/IGUuY2hhckNvZGUgOiAwKSkpOwoJdmFyIHNoaWZ0ZWQgPSAoZS5z aGlmdEtleSB8fCAoZS5tb2RpZmllcnMgJiYgKGUubW9kaWZpZXJzICYgNCkpKTsK CXZhciBjdHJsZWQgPSAoZS5jdHJsS2V5IHx8IChlLm1vZGlmaWVycyAmJiAoZS5t b2RpZmllcnMgJiAyKSkpOwoKCS8vIGlmIGNoYXJhY3RlcnMgYXJlIHVwcGVyY2Fz ZSB3aXRob3V0IHNoaWZ0LCBvciBsb3dlcmNhc2Ugd2l0aCBzaGlmdCwgY2Fwcy1s b2NrIGlzIG9uLgoJcmV0dXJuIChrZXljb2RlID49IDY1ICYmIGtleWNvZGUgPD0g OTAgJiYgIXNoaWZ0ZWQgJiYgIWN0cmxlZCkgfHwgKGtleWNvZGUgPj0gOTcgJiYg a2V5Y29kZSA8PSAxMjIgJiYgc2hpZnRlZCk7Cn0KCi8vICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCi8vIENvb2tpZSBoYW5kbGVycwoKLyoqCiogU2V0cyBh IGNvb2tpZQoqCiogQHBhcmFtCXN0cmluZwlDb29raWUgbmFtZQoqIEBwYXJhbQlz dHJpbmcJQ29va2llIHZhbHVlCiogQHBhcmFtCWRhdGUJQ29va2llIGV4cGlyeSBk YXRlCiovCmZ1bmN0aW9uIHNldF9jb29raWUobmFtZSwgdmFsdWUsIGV4cGlyZXMp CnsKCWRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAnPScgKyBlc2NhcGUodmFsdWUp ICsgJzsgcGF0aD0vJyArICh0eXBlb2YgZXhwaXJlcyAhPSAndW5kZWZpbmVkJyA/ ICc7IGV4cGlyZXM9JyArIGV4cGlyZXMudG9HTVRTdHJpbmcoKSA6ICcnKTsKfQoK LyoqCiogRGVsZXRlcyBhIGNvb2tpZQoqCiogQHBhcmFtCXN0cmluZwlDb29raWUg bmFtZQoqLwpmdW5jdGlvbiBkZWxldGVfY29va2llKG5hbWUpCnsKCWRvY3VtZW50 LmNvb2tpZSA9IG5hbWUgKyAnPScgKyAnOyBleHBpcmVzPVRodSwgMDEtSmFuLTcw IDAwOjAwOjAxIEdNVCcgKyAgJzsgcGF0aD0vJzsKfQoKLyoqCiogRmV0Y2hlcyB0 aGUgdmFsdWUgb2YgYSBjb29raWUKKgoqIEBwYXJhbQlzdHJpbmcJQ29va2llIG5h bWUKKgoqIEByZXR1cm4Jc3RyaW5nCiovCmZ1bmN0aW9uIGZldGNoX2Nvb2tpZShu YW1lKQp7Cgljb29raWVfbmFtZSA9IG5hbWUgKyAnPSc7Cgljb29raWVfbGVuZ3Ro ID0gZG9jdW1lbnQuY29va2llLmxlbmd0aDsKCWNvb2tpZV9iZWdpbiA9IDA7Cgl3 aGlsZSAoY29va2llX2JlZ2luIDwgY29va2llX2xlbmd0aCkKCXsKCQl2YWx1ZV9i ZWdpbiA9IGNvb2tpZV9iZWdpbiArIGNvb2tpZV9uYW1lLmxlbmd0aDsKCQlpZiAo ZG9jdW1lbnQuY29va2llLnN1YnN0cmluZyhjb29raWVfYmVnaW4sIHZhbHVlX2Jl Z2luKSA9PSBjb29raWVfbmFtZSkKCQl7CgkJCXZhciB2YWx1ZV9lbmQgPSBkb2N1 bWVudC5jb29raWUuaW5kZXhPZiAoJzsnLCB2YWx1ZV9iZWdpbik7CgkJCWlmICh2 YWx1ZV9lbmQgPT0gLTEpCgkJCXsKCQkJCXZhbHVlX2VuZCA9IGNvb2tpZV9sZW5n dGg7CgkJCX0KCQkJcmV0dXJuIHVuZXNjYXBlKGRvY3VtZW50LmNvb2tpZS5zdWJz dHJpbmcodmFsdWVfYmVnaW4sIHZhbHVlX2VuZCkpOwoJCX0KCQljb29raWVfYmVn aW4gPSBkb2N1bWVudC5jb29raWUuaW5kZXhPZignICcsIGNvb2tpZV9iZWdpbikg KyAxOwoJCWlmIChjb29raWVfYmVnaW4gPT0gMCkKCQl7CgkJCWJyZWFrOwoJCX0K CX0KCXJldHVybiBudWxsOwp9CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwovLyBGb3JtIGVsZW1lbnQgbWFuYWdlcnMgKHVzZWQgZm9yICdjaGVjayBh bGwnIHR5cGUgc3lzdGVtcwoKLyoqCiogU2V0cyBhbGwgY2hlY2tib3hlcywgcmFk aW8gYnV0dG9ucyBvciBzZWxlY3RzIGluIGEgZ2l2ZW4gZm9ybSB0byBhIGdpdmVu IHN0YXRlLCB3aXRoIGV4Y2VwdGlvbnMKKgoqIEBwYXJhbQlvYmplY3QJRm9ybSBv YmplY3QKKiBAcGFyYW0Jc3RyaW5nCVRhcmdldCBlbGVtZW50IHR5cGUgKG9uZSBv ZiAncmFkaW8nLCAnc2VsZWN0LW9uZScsICdjaGVja2JveCcpCiogQHBhcmFtCXN0 cmluZwlTZWxlY3RlZCBvcHRpb24gaW4gY2FzZSBvZiAncmFkaW8nCiogQHBhcmFt CWFycmF5CUFycmF5IG9mIGVsZW1lbnQgbmFtZXMgdG8gYmUgZXhjbHVkZWQKKiBA cGFyYW0JbWl4ZWQJVmFsdWUgdG8gZ2l2ZSB0byBmb3VuZCBlbGVtZW50cwoqLwpm dW5jdGlvbiBqc190b2dnbGVfYWxsKGZvcm1vYmosIGZvcm10eXBlLCBvcHRpb24s IGV4Y2x1ZGUsIHNldHRvKQp7Cglmb3IgKHZhciBpID0wOyBpIDwgZm9ybW9iai5l bGVtZW50cy5sZW5ndGg7IGkrKykKCXsKCQl2YXIgZWxtID0gZm9ybW9iai5lbGVt ZW50c1tpXTsKCQlpZiAoZWxtLnR5cGUgPT0gZm9ybXR5cGUgJiYgUEhQLmluX2Fy cmF5KGVsbS5uYW1lLCBleGNsdWRlLCBmYWxzZSkgPT0gLTEpCgkJewoJCQlzd2l0 Y2ggKGZvcm10eXBlKQoJCQl7CgkJCQljYXNlICdyYWRpbyc6CgkJCQkJaWYgKGVs bS52YWx1ZSA9PSBvcHRpb24pIC8vIG9wdGlvbiA9PSAnJyBldmFsdWF0ZXMgdHJ1 ZSB3aGVuIG9wdGlvbiA9IDAKCQkJCQl7CgkJCQkJCWVsbS5jaGVja2VkID0gc2V0 dG87CgkJCQkJfQoJCQkJYnJlYWs7CgkJCQljYXNlICdzZWxlY3Qtb25lJzoKCQkJ CQllbG0uc2VsZWN0ZWRJbmRleCA9IHNldHRvOwoJCQkJYnJlYWs7CgkJCQlkZWZh dWx0OgoJCQkJCWVsbS5jaGVja2VkID0gc2V0dG87CgkJCQlicmVhazsKCQkJfQoJ CX0KCX0KfQoKLyoqCiogU2V0cyBhbGwgPHNlbGVjdD4gZWxlbWVudHMgdG8gdGhl IHNlbGVjdGVkSW5kZXggc3BlY2lmaWVkIGJ5IHRoZSAnc2VsZWN0YWxsJyBlbGVt ZW50CioKKiBAcGFyYW0Jb2JqZWN0CUZvcm0gb2JqZWN0CiovCmZ1bmN0aW9uIGpz X3NlbGVjdF9hbGwoZm9ybW9iaikKewoJZXhjbHVkZSA9IG5ldyBBcnJheSgpOwoJ ZXhjbHVkZVswXSA9ICdzZWxlY3RhbGwnOwoJanNfdG9nZ2xlX2FsbChmb3Jtb2Jq LCAnc2VsZWN0LW9uZScsICcnLCBleGNsdWRlLCBmb3Jtb2JqLnNlbGVjdGFsbC5z ZWxlY3RlZEluZGV4KTsKfQoKLyoqCiogU2V0cyBhbGwgPGlucHV0IHR5cGU9ImNo ZWNrYm94IiAvPiBlbGVtZW50cyB0byBoYXZlIHRoZSBzYW1lIGNoZWNrZWQgc3Rh dHVzIGFzICdhbGxib3gnCioKKiBAcGFyYW0Jb2JqZWN0CUZvcm0gb2JqZWN0Ciov CmZ1bmN0aW9uIGpzX2NoZWNrX2FsbChmb3Jtb2JqKQp7CglleGNsdWRlID0gbmV3 IEFycmF5KCk7CglleGNsdWRlWzBdID0gJ2tlZXBhdHRhY2htZW50cyc7CglleGNs dWRlWzFdID0gJ2FsbGJveCc7CglleGNsdWRlWzJdID0gJ3JlbW92ZWFsbCc7Cglq c190b2dnbGVfYWxsKGZvcm1vYmosICdjaGVja2JveCcsICcnLCBleGNsdWRlLCBm b3Jtb2JqLmFsbGJveC5jaGVja2VkKTsKfQoKLyoqCiogU2V0cyBhbGwgPGlucHV0 IHR5cGU9InJhZGlvIiAvPiBncm91cHMgdG8gaGF2ZSBhIHBhcnRpY3VsYXIgb3B0 aW9uIGNoZWNrZWQKKgoqIEBwYXJhbQlvYmplY3QJRm9ybSBvYmplY3QKKiBAcGFy YW0JbWl4ZWQJU2VsZWN0ZWQgb3B0aW9uCiovCmZ1bmN0aW9uIGpzX2NoZWNrX2Fs bF9vcHRpb24oZm9ybW9iaiwgb3B0aW9uKQp7CglleGNsdWRlID0gbmV3IEFycmF5 KCk7CglleGNsdWRlWzBdID0gJ3VzZXVzZXJncm91cCc7Cglqc190b2dnbGVfYWxs KGZvcm1vYmosICdyYWRpbycsIG9wdGlvbiwgZXhjbHVkZSwgdHJ1ZSk7Cn0KCi8q KgoqIEFsaWFzIHRvIGpzX2NoZWNrX2FsbAoqLwpmdW5jdGlvbiBjaGVja2FsbChm b3Jtb2JqKSB7IGpzX2NoZWNrX2FsbChmb3Jtb2JqKTsgfQoKLyoqCiogQWxpYXMg dG8ganNfY2hlY2tfYWxsX29wdGlvbgoqLwpmdW5jdGlvbiBjaGVja2FsbF9vcHRp b24oZm9ybW9iaiwgb3B0aW9uKSB7IGpzX2NoZWNrX2FsbF9vcHRpb24oZm9ybW9i aiwgb3B0aW9uKTsgfQoKLyoqCiogUmVzaXplIGZ1bmN0aW9uIGZvciBDUCB0ZXh0 YXJlYXMKKgoqIEBwYXJhbQlpbnRlZ2VyCUlmIHBvc2l0aXZlLCBzaXplIHVwLCBv dGhlcndpc2Ugc2l6ZSBkb3duCiogQHBhcmFtCXN0cmluZwlJRCBvZiB0aGUgdGV4 dGFyZWEKKgoqIEByZXR1cm4JYm9vbGVhbglmYWxzZQoqLwpmdW5jdGlvbiByZXNp emVfdGV4dGFyZWEodG8sIGlkKQp7CglpZiAodG8gPCAwKQoJewoJCXZhciByb3dz ID0gLTU7CgkJdmFyIGNvbHMgPSAtMTA7Cgl9CgllbHNlCgl7CgkJdmFyIHJvd3Mg PSA1OwoJCXZhciBjb2xzID0gMTA7Cgl9CgoJdmFyIHRleHRhcmVhID0gZmV0Y2hf b2JqZWN0KGlkKTsKCWlmICh0eXBlb2YgdGV4dGFyZWEub3JpZ19yb3dzID09ICd1 bmRlZmluZWQnKQoJewoJCXRleHRhcmVhLm9yaWdfcm93cyA9IHRleHRhcmVhLnJv d3M7CgkJdGV4dGFyZWEub3JpZ19jb2xzID0gdGV4dGFyZWEuY29sczsKCX0KCgl2 YXIgbmV3cm93cyA9IHRleHRhcmVhLnJvd3MgKyByb3dzOwoJdmFyIG5ld2NvbHMg PSB0ZXh0YXJlYS5jb2xzICsgY29sczsKCglpZiAobmV3cm93cyA+PSB0ZXh0YXJl YS5vcmlnX3Jvd3MgJiYgbmV3Y29scyA+PSB0ZXh0YXJlYS5vcmlnX2NvbHMpCgl7 CgkJdGV4dGFyZWEucm93cyA9IG5ld3Jvd3M7CgkJdGV4dGFyZWEuY29scyA9IG5l d2NvbHM7Cgl9CgoJcmV0dXJuIGZhbHNlOwp9CgovLyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwovLyBDb2xsYXBzaWJsZSBlbGVtZW50IGhhbmRsZXJzCgov KioKKiBUb2dnbGVzIHRoZSBjb2xsYXBzZSBzdGF0ZSBvZiBhbiBvYmplY3QsIGFu ZCBzYXZlcyBzdGF0ZSB0byAndmJ1bGxldGluX2NvbGxhcHNlJyBjb29raWUKKgoq IEBwYXJhbQlzdHJpbmcJVW5pcXVlIElEIGZvciB0aGUgY29sbGFwc2UgZ3JvdXAK KgoqIEByZXR1cm4JYm9vbGVhbglmYWxzZQoqLwpmdW5jdGlvbiB0b2dnbGVfY29s bGFwc2Uob2JqaWQpCnsKCWlmICghaXNfcmVnZXhwKQoJewoJCXJldHVybiBmYWxz ZTsKCX0KCglvYmogPSBmZXRjaF9vYmplY3QoJ2NvbGxhcHNlb2JqXycgKyBvYmpp ZCk7CglpbWcgPSBmZXRjaF9vYmplY3QoJ2NvbGxhcHNlaW1nXycgKyBvYmppZCk7 CgljZWwgPSBmZXRjaF9vYmplY3QoJ2NvbGxhcHNlY2VsXycgKyBvYmppZCk7CgoJ aWYgKCFvYmopCgl7CgkJLy8gbm90aGluZyB0byBjb2xsYXBzZSEKCQlpZiAoaW1n KQoJCXsKCQkJLy8gaGlkZSB0aGUgY2xpY2t5IGltYWdlIGlmIHRoZXJlIGlzIG9u ZQoJCQlpbWcuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKCQl9CgkJcmV0dXJuIGZh bHNlOwoJfQoKCWlmIChvYmouc3R5bGUuZGlzcGxheSA9PSAnbm9uZScpCgl7CgkJ b2JqLnN0eWxlLmRpc3BsYXkgPSAnJzsKCQlzYXZlX2NvbGxhcHNlZChvYmppZCwg ZmFsc2UpOwoJCWlmIChpbWcpCgkJewoJCQlpbWdfcmUgPSBuZXcgUmVnRXhwKCJf Y29sbGFwc2VkXFwuZ2lmJCIpOwoJCQlpbWcuc3JjID0gaW1nLnNyYy5yZXBsYWNl KGltZ19yZSwgJy5naWYnKTsKCQl9CgkJaWYgKGNlbCkKCQl7CgkJCWNlbF9yZSA9 IG5ldyBSZWdFeHAoIl4odGhlYWR8dGNhdCkoX2NvbGxhcHNlZCkkIik7CgkJCWNl bC5jbGFzc05hbWUgPSBjZWwuY2xhc3NOYW1lLnJlcGxhY2UoY2VsX3JlLCAnJDEn KTsKCQl9Cgl9CgllbHNlCgl7CgkJb2JqLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7 CgkJc2F2ZV9jb2xsYXBzZWQob2JqaWQsIHRydWUpOwoJCWlmIChpbWcpCgkJewoJ CQlpbWdfcmUgPSBuZXcgUmVnRXhwKCJcXC5naWYkIik7CgkJCWltZy5zcmMgPSBp bWcuc3JjLnJlcGxhY2UoaW1nX3JlLCAnX2NvbGxhcHNlZC5naWYnKTsKCQl9CgkJ aWYgKGNlbCkKCQl7CgkJCWNlbF9yZSA9IG5ldyBSZWdFeHAoIl4odGhlYWR8dGNh dCkkIik7CgkJCWNlbC5jbGFzc05hbWUgPSBjZWwuY2xhc3NOYW1lLnJlcGxhY2Uo Y2VsX3JlLCAnJDFfY29sbGFwc2VkJyk7CgkJfQoJfQoJcmV0dXJuIGZhbHNlOwp9 CgovKioKKiBVcGRhdGVzIHZidWxsZXRpbl9jb2xsYXBzZSBjb29raWUgd2l0aCBj b2xsYXBzZSBwcmVmZXJlbmNlcwoqCiogQHBhcmFtCXN0cmluZwlVbmlxdWUgSUQg Zm9yIHRoZSBjb2xsYXBzZSBncm91cAoqIEBwYXJhbQlib29sZWFuCUFkZCBhIGNv b2tpZQoqLwpmdW5jdGlvbiBzYXZlX2NvbGxhcHNlZChvYmppZCwgYWRkY29sbGFw c2VkKQp7Cgl2YXIgY29sbGFwc2VkID0gZmV0Y2hfY29va2llKCd2YnVsbGV0aW5f Y29sbGFwc2UnKTsKCXZhciB0bXAgPSBuZXcgQXJyYXkoKTsKCglpZiAoY29sbGFw c2VkICE9IG51bGwpCgl7CgkJY29sbGFwc2VkID0gY29sbGFwc2VkLnNwbGl0KCdc bicpOwoKCQlmb3IgKHZhciBpIGluIGNvbGxhcHNlZCkKCQl7CgkJCWlmIChjb2xs YXBzZWRbaV0gIT0gb2JqaWQgJiYgY29sbGFwc2VkW2ldICE9ICcnKQoJCQl7CgkJ CQl0bXBbdG1wLmxlbmd0aF0gPSBjb2xsYXBzZWRbaV07CgkJCX0KCQl9Cgl9CgoJ aWYgKGFkZGNvbGxhcHNlZCkKCXsKCQl0bXBbdG1wLmxlbmd0aF0gPSBvYmppZDsK CX0KCglleHBpcmVzID0gbmV3IERhdGUoKTsKCWV4cGlyZXMuc2V0VGltZShleHBp cmVzLmdldFRpbWUoKSArICgxMDAwICogODY0MDAgKiAzNjUpKTsKCXNldF9jb29r aWUoJ3ZidWxsZXRpbl9jb2xsYXBzZScsIHRtcC5qb2luKCdcbicpLCBleHBpcmVz KTsKfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLy8gRXZlbnQg SGFuZGxlcnMgZm9yIFBhZ2VOYXYgbWVudXMKCi8qKgoqIENsYXNzIHRvIGhhbmRs ZSBwYWdlbmF2IGV2ZW50cwoqLwpmdW5jdGlvbiB2QnBhZ2VuYXYoKQp7Cn0KCi8q KgoqIEhhbmRsZXMgY2xpY2tzIG9uIHBhZ2VuYXYgbWVudSBjb250cm9sIG9iamVj dHMKKi8KdkJwYWdlbmF2LnByb3RvdHlwZS5jb250cm9sb2JqX29uY2xpY2sgPSBm dW5jdGlvbihlKQp7Cgl0aGlzLl9vbmNsaWNrKGUpOwoJdmFyIGlucHV0cyA9IGZl dGNoX3RhZ3ModGhpcy5tZW51Lm1lbnVvYmosICdpbnB1dCcpOwoJZm9yICh2YXIg aSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspCgl7CgkJaWYgKGlucHV0c1tp XS50eXBlID09ICd0ZXh0JykKCQl7CgkJCWlucHV0c1tpXS5mb2N1cygpOwoJCQli cmVhazsKCQl9Cgl9Cn07CgovKioKKiBTdWJtaXRzIHRoZSBwYWdlbmF2IGZvcm0u Li4gc29ydCBvZgoqLwp2QnBhZ2VuYXYucHJvdG90eXBlLmZvcm1fZ290b3BhZ2Ug PSBmdW5jdGlvbihlKQp7CglpZiAoKHBhZ2VudW0gPSBwYXJzZUludChmZXRjaF9v YmplY3QoJ3BhZ2VuYXZfaXR4dCcpLnZhbHVlLCAxMCkpID4gMCkKCXsKCQl3aW5k b3cubG9jYXRpb24gPSB0aGlzLmFkZHIgKyAnJnBhZ2U9JyArIHBhZ2VudW07Cgl9 CglyZXR1cm4gZmFsc2U7Cn07CgovKioKKiBIYW5kbGVzIGNsaWNrcyBvbiB0aGUg J0dvJyBidXR0b24gaW4gcGFnZW5hdiBwb3B1cHMKKi8KdkJwYWdlbmF2LnByb3Rv dHlwZS5pYnRuX29uY2xpY2sgPSBmdW5jdGlvbihlKQp7CglyZXR1cm4gdGhpcy5m b3JtLmdvdG9wYWdlKCk7Cn07CgovKioKKiBIYW5kbGVzIGtleXByZXNzZXMgaW4g dGhlIHRleHQgaW5wdXQgb2YgcGFnZW5hdiBwb3B1cHMKKi8KdkJwYWdlbmF2LnBy b3RvdHlwZS5pdHh0X29ua2V5cHJlc3MgPSBmdW5jdGlvbihlKQp7CglyZXR1cm4g KChlID8gZSA6IHdpbmRvdy5ldmVudCkua2V5Q29kZSA9PSAxMyA/IHRoaXMuZm9y bS5nb3RvcGFnZSgpIDogdHJ1ZSk7Cn07CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwovLyBESFRNTCBQb3B1cCBNZW51IEhhbmRsaW5nIChjb21wbGVt ZW50cyB2YnVsbGV0aW5fbWVudS5qcykKCi8qKgoqIFdyYXBwZXIgZm9yIHZCbWVu dS5yZWdpc3RlcgoqCiogQHBhcmFtCXN0cmluZwlDb250cm9sIElECiogQHBhcmFt CWJvb2xlYW4JTm8gaW1hZ2UgKHRydWUpCiogQHBhcmFtCWJvb2xlYW4JRG9lcyBu b3RoaW5nIGFueSBtb3JlCiovCmZ1bmN0aW9uIHZibWVudV9yZWdpc3Rlcihjb250 cm9saWQsIG5vaW1hZ2UsIGRhdGVmaWVsZCkKewoJaWYgKHR5cGVvZiB2Qm1lbnUg PT0gJ29iamVjdCcpCgl7CgkJcmV0dXJuIHZCbWVudS5yZWdpc3Rlcihjb250cm9s aWQsIG5vaW1hZ2UpOwoJfQp9CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwovLyBTdHVmZiB0aGF0IHJlYWxseSBkb2Vzbid0IGZpdCBhbnl3aGVyZSBl bHNlCgovKioKKiBTZXRzIGFuIGVsZW1lbnQgYW5kIGFsbCBpdHMgY2hpbGRyZW4g dG8gYmUgJ3Vuc2VsZWN0YWJsZScKKgoqIEBwYXJhbQlvYmplY3QJT2JqZWN0IHRv IGJlIG1hZGUgdW5zZWxlY3RhYmxlCiovCmZ1bmN0aW9uIHNldF91bnNlbGVjdGFi bGUob2JqKQp7CglpZiAoIWlzX2llNCAmJiB0eXBlb2Ygb2JqLnRhZ05hbWUgIT0g J3VuZGVmaW5lZCcpCgl7CgkJaWYgKG9iai5oYXNDaGlsZE5vZGVzKCkpCgkJewoJ CQlmb3IgKHZhciBpID0gMDsgaSA8IG9iai5jaGlsZE5vZGVzLmxlbmd0aDsgaSsr KQoJCQl7CgkJCQlzZXRfdW5zZWxlY3RhYmxlKG9iai5jaGlsZE5vZGVzW2ldKTsK CQkJfQoJCX0KCQlvYmoudW5zZWxlY3RhYmxlID0gJ29uJzsKCX0KfQoKLyoqCiog RmV0Y2hlcyB0aGUgc2Vzc2lvbmhhc2ggZnJvbSB0aGUgU0VTU0lPTlVSTCB2YXJp YWJsZQoqCiogQHJldHVybglzdHJpbmcKKi8KZnVuY3Rpb24gZmV0Y2hfc2Vzc2lv bmhhc2goKQp7CglyZXR1cm4gKFNFU1NJT05VUkwgPT0gJycgPyAnJyA6IFNFU1NJ T05VUkwuc3Vic3RyKDIsIDMyKSk7Cn0KCi8qKgoqIEVtdWxhdGVzIHRoZSBQSFAg dmVyc2lvbiBvZiB2QnVsbGV0aW4ncyBjb25zdHJ1Y3RfcGhyYXNlKCkgc3ByaW50 ZiB3cmFwcGVyCioKKiBAcGFyYW0Jc3RyaW5nCVN0cmluZyBjb250YWluaW5nICUx JHMgdHlwZSByZXBsYWNlbWVudCBtYXJrZXJzCiogQHBhcmFtCXN0cmluZwlGaXJz dCByZXBsYWNlbWVudAoqIEBwYXJhbQlzdHJpbmcJTnRoIHJlcGxhY2VtZW50CioK KiBAcmV0dXJuCXN0cmluZwoqLwpmdW5jdGlvbiBjb25zdHJ1Y3RfcGhyYXNlKCkK ewoJaWYgKCFhcmd1bWVudHMgfHwgYXJndW1lbnRzLmxlbmd0aCA8IDEgfHwgIWlz X3JlZ2V4cCkKCXsKCQlyZXR1cm4gZmFsc2U7Cgl9CgoJdmFyIGFyZ3MgPSBhcmd1 bWVudHM7Cgl2YXIgc3RyID0gYXJnc1swXTsKCXZhciByZTsKCglmb3IgKHZhciBp ID0gMTsgaSA8IGFyZ3MubGVuZ3RoOyBpKyspCgl7CgkJcmUgPSBuZXcgUmVnRXhw KCIlIiArIGkgKyAiXFwkcyIsICdnaScpOwoJCXN0ciA9IHN0ci5yZXBsYWNlKHJl LCBhcmdzW2ldKTsKCX0KCXJldHVybiBzdHI7Cn0KCi8qKgoqIEhhbmRsZXMgdGhl IHF1aWNrIHN0eWxlL2xhbmd1YWdlIG9wdGlvbnMgaW4gdGhlIGZvb3RlcgoqCiog QHBhcmFtCW9iamVjdAlTZWxlY3Qgb2JqZWN0CiogQHBhcmFtCXN0cmluZwlUeXBl IChzdHlsZSBvciBsYW5ndWFnZSkKKi8KZnVuY3Rpb24gc3dpdGNoX2lkKHNlbGVj dG9iaiwgdHlwZSkKewoJdmFyIGlkID0gc2VsZWN0b2JqLm9wdGlvbnNbc2VsZWN0 b2JqLnNlbGVjdGVkSW5kZXhdLnZhbHVlOwoKCWlmIChpZCA9PSAnJykKCXsKCQly ZXR1cm47Cgl9CgoJdmFyIHVybCA9IG5ldyBTdHJpbmcod2luZG93LmxvY2F0aW9u KTsKCXZhciBmcmFnbWVudCA9IG5ldyBTdHJpbmcoJycpOwoKCS8vIGdldCByaWQg b2YgZnJhZ21lbnQKCXVybCA9IHVybC5zcGxpdCgnIycpOwoKCS8vIGRlYWwgd2l0 aCB0aGUgZnJhZ21lbnQgZmlyc3QKCWlmICh1cmxbMV0pCgl7CgkJZnJhZ21lbnQg PSAnIycgKyB1cmxbMV07Cgl9CgoJLy8gZGVhbCB3aXRoIHRoZSBtYWluIHVybAoJ dXJsID0gdXJsWzBdOwoKCS8vIHJlbW92ZSBpZD14JiBmcm9tIG1haW4gYml0Cglp ZiAodXJsLmluZGV4T2YodHlwZSArICdpZD0nKSAhPSAtMSAmJiBpc19yZWdleHAp Cgl7CgkJcmUgPSBuZXcgUmVnRXhwKHR5cGUgKyAiaWQ9XFxkKyY/Iik7CgkJdXJs ID0gdXJsLnJlcGxhY2UocmUsICcnKTsKCX0KCgkvLyBhZGQgdGhlID8gdG8gdGhl IHVybCBpZiBuZWVkZWQKCWlmICh1cmwuaW5kZXhPZignPycpID09IC0xKQoJewoJ CXVybCArPSAnPyc7Cgl9CgllbHNlCgl7CgkJLy8gbWFrZSBzdXJlIHRoYXQgd2Ug aGF2ZSBhIHZhbGlkIGNoYXJhY3RlciB0byBqb2luIG91ciBpZCBiaXQKCQlsYXN0 Y2hhciA9IHVybC5zdWJzdHIodXJsLmxlbmd0aCAtIDEpOwoJCWlmIChsYXN0Y2hh ciAhPSAnJicgJiYgbGFzdGNoYXIgIT0gJz8nKQoJCXsKCQkJdXJsICs9ICcmJzsK CQl9Cgl9CgoJd2luZG93LmxvY2F0aW9uID0gdXJsICsgdHlwZSArICdpZD0nICsg aWQgKyBmcmFnbWVudDsKfQoKLyoqCiogVGFrZXMgdGhlICdhbHQnIGF0dHJpYnV0 ZSBmb3IgYW4gaW1hZ2UgYW5kIGF0dGFjaGVzIGl0IHRvIHRoZSAndGl0bGUnIGF0 dHJpYnV0ZQoqCiogQHBhcmFtCW9iamVjdAlJbWFnZSBvYmplY3QKKi8KZnVuY3Rp b24gaW1nX2FsdF8yX3RpdGxlKGltZykKewoJaWYgKCFpbWcudGl0bGUgJiYgaW1n LmFsdCAhPSAnJykKCXsKCQlpbWcudGl0bGUgPSBpbWcuYWx0OwoJfQp9CgovLyAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBJbml0aWFsaXplIGEgUG9z dEJpdAoKLyoqCiogVGhpcyBmdW5jdGlvbiBydW5zIGFsbCB0aGUgbmVjZXNzYXJ5 IEphdmFzY3JpcHQgY29kZSBvbiBhIFBvc3RCaXQKKiBhZnRlciBpdCBoYXMgYmVl biBsb2FkZWQgdmlhIEFKQVguIERvbid0IHVzZSB0aGlzIG1ldGhvZCBiZWZvcmUg YQoqIGNvbXBsZXRlIHBhZ2UgbG9hZCBvciB5b3UnbGwgaGF2ZSBwcm9ibGVtcy4K KgoqIEBwYXJhbQlvYmplY3QJT2JqZWN0IGNvbnRhaW5pbmcgcG9zdGJpdHMKKi8K ZnVuY3Rpb24gUG9zdEJpdF9Jbml0KG9iaiwgcG9zdGlkKQp7CglpZiAodHlwZW9m IHZCbWVudSAhPSAndW5kZWZpbmVkJykKCXsKCQkvLyBpbml0IHByb2ZpbGUgbWVu dShzKQoJCXZhciBkaXZzID0gZmV0Y2hfdGFncyhvYmosICdkaXYnKTsKCQlmb3Ig KHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspCgkJewoJCQlpZiAoZGl2 c1tpXS5pZCAmJiBkaXZzW2ldLmlkLnN1YnN0cigwLCA5KSA9PSAncG9zdG1lbnVf JykKCQkJewoJCQkJdkJtZW51LnJlZ2lzdGVyKGRpdnNbaV0uaWQsIHRydWUpOwoJ CQl9CgkJfQoJfQoKCWlmICh0eXBlb2YgdkJfUXVpY2tFZGl0b3IgIT0gJ3VuZGVm aW5lZCcpCgl7CgkJLy8gaW5pdCBxdWljayBlZGl0IGNvbnRyb2xzCgkJdkJfQUpB WF9RdWlja0VkaXRfSW5pdChvYmopOwoJfQoKCWlmICh0eXBlb2YgdkJfUXVpY2tS ZXBseSAhPSAndW5kZWZpbmVkJykKCXsKCQkvLyBpbml0IHF1aWNrIHJlcGx5IGJ1 dHRvbgoJCXFyX2luaXRfYnV0dG9ucyhvYmopOwoJfQoKCWlmICh0eXBlb2YgbXFf aW5pdCAhPSAndW5kZWZpbmVkJykKCXsKCQkvLyBpbml0IHF1aWNrIHJlcGx5IGJ1 dHRvbgoJCW1xX2luaXQob2JqKTsKCX0KCglpZiAodHlwZW9mIHZCcmVwICE9ICd1 bmRlZmluZWQnKQoJewoJCWlmICh0eXBlb2YgcG9zdGlkICE9ICd1bmRlZmluZWQn KQoJCXsKCQkJdmJyZXBfcmVnaXN0ZXIocG9zdGlkKTsKCQl9Cgl9CgoJaWYgKHR5 cGVvZiBpbmxpbmVNb2QgIT0gJ3VuZGVmaW5lZCcpCgl7CgkJaW1faW5pdChvYmop OwoJfQp9CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwovLyBNYWlu IHZCdWxsZXRpbiBKYXZhc2NyaXB0IEluaXRpYWxpemF0aW9uCgovKioKKiBUaGlz IGZ1bmN0aW9uIHJ1bnMgKGFsbW9zdCkgYXQgdGhlIGVuZCBvZiBzY3JpcHQgbG9h ZGluZyBvbiBtb3N0IHZCdWxsZXRpbiBwYWdlcwoqCiogSXQgc2V0cyB1cCB0aGlu Z3MgbGlrZSBpbWFnZSBhbHQtPnRpdGxlIHRhZ3MsIHR1cm5zIG9uIHRoZSBwb3B1 cCBtZW51IHN5c3RlbSBldGMuCioKKiBAcmV0dXJuCWJvb2xlYW4KKi8KZnVuY3Rp b24gdkJ1bGxldGluX2luaXQoKQp7CgkvLyBkb24ndCBib3RoZXIgZG9pbmcgYW55 IGV4Y2l0aW5nIHN0dWZmIGZvciBXZWJUVgoJaWYgKGlzX3dlYnR2KQoJewoJCXJl dHVybiBmYWxzZTsKCX0KCgkvLyBzZXQgJ3RpdGxlJyB0YWdzIGZvciBpbWFnZSBl bGVtZW50cwoJdmFyIGltZ3MgPSBmZXRjaF90YWdzKGRvY3VtZW50LCAnaW1nJyk7 Cglmb3IgKHZhciBpID0gMDsgaSA8IGltZ3MubGVuZ3RoOyBpKyspCgl7CgkJaW1n X2FsdF8yX3RpdGxlKGltZ3NbaV0pOwoJfQoKCS8vIGZpbmFsaXplIHBvcHVwIG1l bnVzCglpZiAodHlwZW9mIHZCbWVudSA9PSAnb2JqZWN0JykKCXsKCQkvLyBjbG9z ZSBhbGwgbWVudXMgb24gZG9jdW1lbnQgY2xpY2sKCQlpZiAod2luZG93LmF0dGFj aEV2ZW50ICYmICFpc19zYWYpCgkJewoJCQlkb2N1bWVudC5hdHRhY2hFdmVudCgn b25jbGljaycsIHZibWVudV9oaWRlKTsKCQkJd2luZG93LmF0dGFjaEV2ZW50KCdv bnJlc2l6ZScsIHZibWVudV9oaWRlKTsKCQl9CgkJZWxzZSBpZiAoZG9jdW1lbnQu YWRkRXZlbnRMaXN0ZW5lciAmJiAhaXNfc2FmKQoJCXsKCQkJZG9jdW1lbnQuYWRk RXZlbnRMaXN0ZW5lcignY2xpY2snLCB2Ym1lbnVfaGlkZSwgZmFsc2UpOwoJCQl3 aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdmJtZW51X2hpZGUsIGZh bHNlKTsKCQl9CgkJZWxzZQoJCXsKCQkJd2luZG93Lm9uY2xpY2sgPSB2Ym1lbnVf aGlkZTsKCQkJd2luZG93Lm9ucmVzaXplID0gdmJtZW51X2hpZGU7CgkJfQoKCQkv LyBhZGQgcG9wdXBzIHRvIHBhZ2VuYXYgZWxlbWVudHMKCQl2YXIgcGFnZW5hdnMg PSBmZXRjaF90YWdzKGRvY3VtZW50LCAndGQnKTsKCQlmb3IgKHZhciBuID0gMDsg biA8IHBhZ2VuYXZzLmxlbmd0aDsgbisrKQoJCXsKCQkJaWYgKHBhZ2VuYXZzW25d Lmhhc0NoaWxkTm9kZXMoKSAmJiBwYWdlbmF2c1tuXS5maXJzdENoaWxkLm5hbWUg JiYgcGFnZW5hdnNbbl0uZmlyc3RDaGlsZC5uYW1lLmluZGV4T2YoJ1BhZ2VOYXYn KSAhPSAtMSkKCQkJewoJCQkJdmFyIGFkZHIgPSBwYWdlbmF2c1tuXS50aXRsZTsK CQkJCXBhZ2VuYXZzW25dLnRpdGxlID0gJyc7CgkJCQlwYWdlbmF2c1tuXS5pbm5l ckhUTUwgPSAnJzsKCQkJCXBhZ2VuYXZzW25dLmlkID0gJ3BhZ2VuYXYuJyArIG47 CgkJCQl2YXIgcG4gPSB2Qm1lbnUucmVnaXN0ZXIocGFnZW5hdnNbbl0uaWQpOwoJ CQkJaWYgKGlzX3NhZikKCQkJCXsKCQkJCQlwbi5jb250cm9sb2JqLl9vbmNsaWNr ID0gcG4uY29udHJvbG9iai5vbmNsaWNrOwoJCQkJCXBuLmNvbnRyb2xvYmoub25j bGljayA9IHZCcGFnZW5hdi5wcm90b3R5cGUuY29udHJvbG9ial9vbmNsaWNrOwoJ CQkJfQoJCQl9CgkJfQoKCQkvLyBwcm9jZXNzIHRoZSBwYWdlbmF2cyBwb3B1cCBm b3JtCgkJaWYgKHR5cGVvZiBhZGRyICE9ICd1bmRlZmluZWQnKQoJCXsKCQkJZmV0 Y2hfb2JqZWN0KCdwYWdlbmF2X2Zvcm0nKS5hZGRyID0gYWRkcjsKCQkJZmV0Y2hf b2JqZWN0KCdwYWdlbmF2X2Zvcm0nKS5nb3RvcGFnZSA9IHZCcGFnZW5hdi5wcm90 b3R5cGUuZm9ybV9nb3RvcGFnZTsKCQkJZmV0Y2hfb2JqZWN0KCdwYWdlbmF2X2li dG4nKS5vbmNsaWNrID0gdkJwYWdlbmF2LnByb3RvdHlwZS5pYnRuX29uY2xpY2s7 CgkJCWZldGNoX29iamVjdCgncGFnZW5hdl9pdHh0Jykub25rZXlwcmVzcyA9IHZC cGFnZW5hdi5wcm90b3R5cGUuaXR4dF9vbmtleXByZXNzOwoJCX0KCgkJLy8gYWN0 aXZhdGUgdGhlIG1lbnUgc3lzdGVtCgkJdkJtZW51LmFjdGl2YXRlKHRydWUpOwoJ fQoKCXJldHVybiB0cnVlOwp9CgovKj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qXAp8 fCAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIwp8fCAjIENWUzogJFJDU2ZpbGU6IHZidWxs ZXRpbl9nbG9iYWwuanMsdiAkIC0gJFJldmlzaW9uOiAxLjE2OCAkCnx8ICMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjClwqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSov ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=vbulletin_menu.js Content-Type: application/x-javascript; name=vbulletin_menu.js Content-Location: http://www.suzukovod.ru/clientscript/vbulletin_menu.js?v=361 Content-Transfer-Encoding: Base64 Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09KlwKfHwgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMgfHwKfHwgIyB2QnVsbGV0aW4gMy42LjEKfHwgIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMgfHwKfHwgIyBDb3B5cmlnaHQgqTIwMDAtMjAwNiBKZWxzb2Z0IEVudGVycHJp c2VzIEx0ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gfHwKfHwgIyBUaGlzIGZpbGUg bWF5IG5vdCBiZSByZWRpc3RyaWJ1dGVkIGluIHdob2xlIG9yIHNpZ25pZmljYW50 IHBhcnQuICMgfHwKfHwgIyAtLS0tLS0tLS0tLS0tLS0tIFZCVUxMRVRJTiBJUyBO T1QgRlJFRSBTT0ZUV0FSRSAtLS0tLS0tLS0tLS0tLS0tICMgfHwKfHwgIyBodHRw Oi8vd3d3LnZidWxsZXRpbi5jb20gfCBodHRwOi8vd3d3LnZidWxsZXRpbi5jb20v bGljZW5zZS5odG1sICMgfHwKfHwgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgfHwKXCo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ki8KCi8qKgoqIHZCdWxsZXRpbiBwb3B1cCBt ZW51IGV4YW1wbGUgdXNhZ2U6CioKKiBUbyBjcmVhdGUgYSBuZXcgcG9wdXAgbWVu dToKKiAJPGVsZW1lbnQgaWQ9IngiPkNsaWNrIG1lIDxzY3JpcHQgdHlwZT0idGV4 dC9qYXZhc2NyaXB0Ij4gdkJtZW51LnJlZ2lzdGVyKCd4Jyk7IDwvc2NyaXB0Pjwv ZWxlbWVudD4KKgoqIFRvIGNyZWF0ZSBhIGR5bmFtaWMgcG9wdXAgbWVudSB3aXRo IGEgdGl0bGUgYW5kIHR3byBvcHRpb25zOgoqIAk8ZWxlbWVudCBpZD0ieCI+Q2xp Y2sgbWU8L2VsZW1lbnQ+CiogCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0 Ij4KKiAJbWVudSA9IG5ldyB2Ql9NZW51X0J1aWxkZXIoJ3gnKTsKKiAJbWVudS5z ZXRfdGl0bGUoJ015IE1lbnUnKTsKKiAJbWVudS5hZGRfb3B0aW9uKCdPcHRpb24g MScsICdzY3JpcHQucGhwP29wdD0xJyk7CiogCW1lbnUuYWRkX29wdGlvbignT3B0 aW9uIDInLCAnc2NyaXB0LnBocD9vcHQ9MicpOwoqIAltZW51LmJ1aWxkKCk7Ciog CTwvc2NyaXB0PgoqLwoKLy8gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK Ly8gdkJfUG9wdXBfSGFuZGxlcgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwoKLyoqCiogdkJ1bGxldGluIHBvcHVwIG1lbnUgcmVnaXN0cnkKKi8KZnVu Y3Rpb24gdkJfUG9wdXBfSGFuZGxlcigpCnsKCS8qKgoJKiBPcHRpb25zOgoJKgoJ KiBAdmFyCWludGVnZXIJTnVtYmVyIG9mIHN0ZXBzIHRvIHVzZSBpbiBzbGlkaW5n IG1lbnVzIG9wZW4KCSogQHZhcglib29sZWFuCVVzZSBvcGFjaXR5IGZhY2UgaW4g bWVudSBvcGVuPwoJKi8KCXRoaXMub3Blbl9zdGVwcyA9IDEwOwoJdGhpcy5vcGVu X2ZhZGUgPSBmYWxzZTsKCgl0aGlzLmFjdGl2ZSA9IGZhbHNlOwoKCXRoaXMubWVu dXMgPSBuZXcgQXJyYXkoKTsKCXRoaXMuYWN0aXZlbWVudSA9IG51bGw7CgoJdGhp cy5oaWRkZW5fc2VsZWN0cyA9IG5ldyBBcnJheSgpOwp9OwoKLy8gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLy8gdkJfUG9wdXBfSGFuZGxlciBtZXRob2Rz CgovKioKKiBBY3RpdmF0ZSAvIERlYWN0aXZhdGUgdGhlIG1lbnUgc3lzdGVtCioK KiBAcGFyYW0JYm9vbGVhbglBY3RpdmUgc3RhdGUgZm9yIG1lbnVzCiovCnZCX1Bv cHVwX0hhbmRsZXIucHJvdG90eXBlLmFjdGl2YXRlID0gZnVuY3Rpb24oYWN0aXZl KQp7Cgl0aGlzLmFjdGl2ZSA9IGFjdGl2ZTsKfTsKCi8qKgoqIFJlZ2lzdGVyIGEg Y29udHJvbCBvYmplY3QgYXMgYSBtZW51IGNvbnRyb2wKKgoqIEBwYXJhbQlzdHJp bmcJSUQgb2YgdGhlIGNvbnRyb2wgb2JqZWN0CiogQHBhcmFtCWJvb2xlYW4JRG8g bm90IGFkZCBhbiBpbWFnZSAodHJ1ZSkKKgoqIEByZXR1cm4JdkJfUG9wdXBfTWVu dQoqLwp2Ql9Qb3B1cF9IYW5kbGVyLnByb3RvdHlwZS5yZWdpc3RlciA9IGZ1bmN0 aW9uKGNvbnRyb2xrZXksIG5vaW1hZ2UpCnsKCXRoaXMubWVudXNbY29udHJvbGtl eV0gPSBuZXcgdkJfUG9wdXBfTWVudShjb250cm9sa2V5LCBub2ltYWdlKTsKCgly ZXR1cm4gdGhpcy5tZW51c1tjb250cm9sa2V5XTsKfTsKCi8qKgoqIEhpZGUgYWN0 aXZlIG1lbnUKKi8KdkJfUG9wdXBfSGFuZGxlci5wcm90b3R5cGUuaGlkZSA9IGZ1 bmN0aW9uKCkKewoJaWYgKHRoaXMuYWN0aXZlbWVudSAhPSBudWxsKQoJewoJCS8v dGhpcy5hY3RpdmVtZW51LmhpZGUoKTsKCQl0aGlzLm1lbnVzW3RoaXMuYWN0aXZl bWVudV0uaGlkZSgpOwoJfQp9OwoKCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCi8vIGluaXRpYWxpemUgbWVudSByZWdpc3RyeQoKdmFyIHZCbWVudSA9 IG5ldyB2Ql9Qb3B1cF9IYW5kbGVyKCk7CgovKioKKiBGdW5jdGlvbiB0byBhbGxv dyBhbnl0aGluZyB0byBoaWRlIGFsbCBtZW51cwoqCiogQHBhcmFtCWV2ZW50CUV2 ZW50IG9iamVjdAoqCiogQHJldHVybgltaXhlZAoqLwpmdW5jdGlvbiB2Ym1lbnVf aGlkZShlKQp7CglpZiAoZSAmJiBlLmJ1dHRvbiAmJiBlLmJ1dHRvbiAhPSAxICYm IGUudHlwZSA9PSAnY2xpY2snKQoJewoJCXJldHVybiB0cnVlOwoJfQoJZWxzZQoJ ewoJCXZCbWVudS5oaWRlKCk7Cgl9Cn07CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwovLyB2Ql9Qb3B1cF9NZW51Ci8vICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCgovKioKKiB2QnVsbGV0aW4gcG9wdXAgbWVudSBjbGFzcyBj b25zdHJ1Y3RvcgoqCiogTWFuYWdlcyBhIHNpbmdsZSBtZW51IGFuZCBjb250cm9s IG9iamVjdAoqIEluaXRpYWxpemVzIGNvbnRyb2wgb2JqZWN0CioKKiBAcGFyYW0J c3RyaW5nCUlEIG9mIHRoZSBjb250cm9sIG9iamVjdAoqLwpmdW5jdGlvbiB2Ql9Q b3B1cF9NZW51KGNvbnRyb2xrZXksIG5vaW1hZ2UpCnsKCXRoaXMuY29udHJvbGtl eSA9IGNvbnRyb2xrZXk7Cgl0aGlzLm1lbnVuYW1lID0gdGhpcy5jb250cm9sa2V5 LnNwbGl0KCcuJylbMF0gKyAnX21lbnUnOwoKCXRoaXMuaW5pdF9jb250cm9sKG5v aW1hZ2UpOwoKCWlmIChmZXRjaF9vYmplY3QodGhpcy5tZW51bmFtZSkpCgl7CgkJ dGhpcy5pbml0X21lbnUoKTsKCX0KCgl0aGlzLnNsaWRlX29wZW4gPSAoaXNfb3Bl cmEgPyBmYWxzZSA6IHRydWUpOwoJdGhpcy5vcGVuX3N0ZXBzID0gdkJtZW51Lm9w ZW5fc3RlcHM7Cn07CgovLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQov LyB2Ql9Qb3B1cF9NZW51IG1ldGhvZHMKCi8qKgoqIEluaXRpYWxpemUgdGhlIGNv bnRyb2wgb2JqZWN0CiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLmluaXRfY29u dHJvbCA9IGZ1bmN0aW9uKG5vaW1hZ2UpCnsKCXRoaXMuY29udHJvbG9iaiA9IGZl dGNoX29iamVjdCh0aGlzLmNvbnRyb2xrZXkpOwoJdGhpcy5jb250cm9sb2JqLnN0 YXRlID0gZmFsc2U7CgoJaWYgKHRoaXMuY29udHJvbG9iai5maXJzdENoaWxkICYm ICh0aGlzLmNvbnRyb2xvYmouZmlyc3RDaGlsZC50YWdOYW1lID09ICdURVhUQVJF QScgfHwgdGhpcy5jb250cm9sb2JqLmZpcnN0Q2hpbGQudGFnTmFtZSA9PSAnSU5Q VVQnKSkKCXsKCQkvLyBkbyBub3RoaW5nCgl9CgllbHNlCgl7CgkJaWYgKCFub2lt YWdlICYmICEoaXNfbWFjICYmIGlzX2llKSkKCQl7CgkJCXZhciBzcGFjZSA9IGRv Y3VtZW50LmNyZWF0ZVRleHROb2RlKCcgJyk7CgkJCXRoaXMuY29udHJvbG9iai5h cHBlbmRDaGlsZChzcGFjZSk7CgoJCQl2YXIgaW1nID0gZG9jdW1lbnQuY3JlYXRl RWxlbWVudCgnaW1nJyk7CgkJCWltZy5zcmMgPSBJTUdESVJfTUlTQyArICcvbWVu dV9vcGVuLmdpZic7CgkJCWltZy5ib3JkZXIgPSAwOwoJCQlpbWcudGl0bGUgPSAn JzsKCQkJaW1nLmFsdCA9ICcnOwoJCQl0aGlzLmNvbnRyb2xvYmouYXBwZW5kQ2hp bGQoaW1nKTsKCQl9CgoJCXRoaXMuY29udHJvbG9iai51bnNlbGVjdGFibGUgPSB0 cnVlOwoJCWlmICghbm9pbWFnZSkKCQl7CgkJCXRoaXMuY29udHJvbG9iai5zdHls ZS5jdXJzb3IgPSBwb2ludGVyX2N1cnNvcjsKCQl9CgkJdGhpcy5jb250cm9sb2Jq Lm9uY2xpY2sgPSB2Ql9Qb3B1cF9FdmVudHMucHJvdG90eXBlLmNvbnRyb2xvYmpf b25jbGljazsKCQl0aGlzLmNvbnRyb2xvYmoub25tb3VzZW92ZXIgPSB2Ql9Qb3B1 cF9FdmVudHMucHJvdG90eXBlLmNvbnRyb2xvYmpfb25tb3VzZW92ZXI7Cgl9Cn07 CgovKioKKiBJbml0IHRoZSBwb3B1cCBtZW51IG9iamVjdAoqLwp2Ql9Qb3B1cF9N ZW51LnByb3RvdHlwZS5pbml0X21lbnUgPSBmdW5jdGlvbigpCnsKCXRoaXMubWVu dW9iaiA9IGZldGNoX29iamVjdCh0aGlzLm1lbnVuYW1lKTsKCglpZiAodGhpcy5t ZW51b2JqICYmICF0aGlzLm1lbnVvYmouaW5pdGlhbGl6ZWQpCgl7CgkJdGhpcy5t ZW51b2JqLmluaXRpYWxpemVkID0gdHJ1ZTsKCQl0aGlzLm1lbnVvYmoub25jbGlj ayA9IGVfYnlfZ3VtOwoJCXRoaXMubWVudW9iai5zdHlsZS5wb3NpdGlvbiA9ICdh YnNvbHV0ZSc7CgkJdGhpcy5tZW51b2JqLnN0eWxlLnpJbmRleCA9IDUwOwoKCQkv LyBpbml0IHBvcHVwIGZpbHRlcnMgKGllIG9ubHkpCgkJaWYgKGlzX2llICYmICFp c19tYWMpCgkJewoJCQl0aGlzLm1lbnVvYmouc3R5bGUuZmlsdGVyICs9ICJwcm9n aWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuYWxwaGEoZW5hYmxlZD0xLG9w YWNpdHk9MTAwKSI7CgkJCXRoaXMubWVudW9iai5zdHlsZS5maWx0ZXIgKz0gInBy b2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5zaGFkb3coZGlyZWN0aW9u PTEzNSxjb2xvcj0jOEU4RThFLHN0cmVuZ3RoPTMpIjsKCQl9CgoJCXRoaXMuaW5p dF9tZW51X2NvbnRlbnRzKCk7Cgl9Cn07CgovKioKKiBJbml0IHRoZSBwb3B1cCBt ZW51IGNvbnRlbnRzCiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLmluaXRfbWVu dV9jb250ZW50cyA9IGZ1bmN0aW9uKCkKewoJdmFyIHRkcyA9IGZldGNoX3RhZ3Mo dGhpcy5tZW51b2JqLCAndGQnKTsKCWZvciAodmFyIGkgPSAwOyBpIDwgdGRzLmxl bmd0aDsgaSsrKQoJewoJCWlmICh0ZHNbaV0uY2xhc3NOYW1lID09ICd2Ym1lbnVf b3B0aW9uJykKCQl7CgkJCWlmICh0ZHNbaV0udGl0bGUgJiYgdGRzW2ldLnRpdGxl ID09ICdub2hpbGl0ZScpCgkJCXsKCQkJCS8vIG5vdCBhbiBhY3RpdmUgY2VsbAoJ CQkJdGRzW2ldLnRpdGxlID0gJyc7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQkvLyBj cmVhdGUgYSByZWZlcmVuY2UgYmFjayB0byB0aGUgbWVudSBjbGFzcwoJCQkJdGRz W2ldLmNvbnRyb2xrZXkgPSB0aGlzLmNvbnRyb2xrZXk7CgoJCQkJLy8gaGFuZGxl IG1vdXNlb3ZlciAvIG1vdXNlb3V0IGhpZ2hsaWdodGluZyBldmVudHMKCQkJCXRk c1tpXS5vbm1vdXNlb3ZlciA9IHZCX1BvcHVwX0V2ZW50cy5wcm90b3R5cGUubWVu dW9wdGlvbl9vbm1vdXNlb3ZlcjsKCQkJCXRkc1tpXS5vbm1vdXNlb3V0ID0gdkJf UG9wdXBfRXZlbnRzLnByb3RvdHlwZS5tZW51b3B0aW9uX29ubW91c2VvdXQ7CgoJ CQkJdmFyIGxpbmtzID0gZmV0Y2hfdGFncyh0ZHNbaV0sICdhJyk7CgkJCQlpZiAo bGlua3MubGVuZ3RoID09IDEpCgkJCQl7CgkJCQkJLyogT2sgd2UgaGF2ZSBhIGxp bmssIHdlIHNob3VsZCB1c2UgdGhpcyBpZgoJCQkJCTEuIFRoZXJlIGlzIG5vIG9u Y2xpY2sgZXZlbnQgaW4gdGhlIGxpbmsKCQkJCQkyLiBUaGVyZSBpcyBubyBvbmNs aWNrIGV2ZW50IG9uIHRoZSBjZWxsCgkJCQkJMy4gVGhlIG9uY2xpY2sgZXZlbnQg Zm9yIHRoZSBjZWxsIHNob3VsZCBlcXVhbCB0aGUgbGluayBpZiB0aGUgYWJvdmUg YXJlIHRydWUKCgkJCQkJSWYgd2UgZmluZCBhIGJyb3dzZXIgdGhhdHMgZ2V0cyBj b25mdXNlZCB3ZSBtYXkgbmVlZCB0byBzZXQgcmVtb3ZlX2xpbmsgdG8gdHJ1ZSBm b3IgaXQuCgkJCQkJKi8KCgkJCQkJdGRzW2ldLmNsYXNzTmFtZSA9IHRkc1tpXS5j bGFzc05hbWUgKyAnIHZibWVudV9vcHRpb25fYWxpbmsnOwoJCQkJCXRkc1tpXS5p c2xpbmsgPSB0cnVlOwoKCQkJCQl2YXIgbGlua29iaiA9IGxpbmtzWzBdOwoJCQkJ CXZhciByZW1vdmVfbGluayA9IGZhbHNlOwoKCQkJCQl0ZHNbaV0udGFyZ2V0ID0g bGlua29iai5nZXRBdHRyaWJ1dGUoJ3RhcmdldCcpOwoKCQkJCQlpZiAodHlwZW9m IGxpbmtvYmoub25jbGljayA9PSAnZnVuY3Rpb24nKQoJCQkJCXsKCQkJCQkJdGRz W2ldLm9mdW5jID0gbGlua29iai5vbmNsaWNrOwoJCQkJCQl0ZHNbaV0ub25jbGlj ayA9IHZCX1BvcHVwX0V2ZW50cy5wcm90b3R5cGUubWVudW9wdGlvbl9vbmNsaWNr X2Z1bmN0aW9uOwoJCQkJCQlyZW1vdmVfbGluayA9IHRydWU7CgkJCQkJfQoJCQkJ CWVsc2UgaWYgKHR5cGVvZiB0ZHNbaV0ub25jbGljayA9PSAnZnVuY3Rpb24nKQoJ CQkJCXsKCQkJCQkJdGRzW2ldLm9mdW5jID0gdGRzW2ldLm9uY2xpY2s7CgkJCQkJ CXRkc1tpXS5vbmNsaWNrID0gdkJfUG9wdXBfRXZlbnRzLnByb3RvdHlwZS5tZW51 b3B0aW9uX29uY2xpY2tfZnVuY3Rpb247CgkJCQkJCXJlbW92ZV9saW5rID0gdHJ1 ZTsKCQkJCQl9CgkJCQkJZWxzZQoJCQkJCXsKCQkJCQkJdGRzW2ldLmhyZWYgPSBs aW5rb2JqLmhyZWY7CgkJCQkJCXRkc1tpXS5vbmNsaWNrID0gdkJfUG9wdXBfRXZl bnRzLnByb3RvdHlwZS5tZW51b3B0aW9uX29uY2xpY2tfbGluazsKCQkJCQl9CgoJ CQkJCWlmIChyZW1vdmVfbGluaykKCQkJCQl7CgkJCQkJCXZhciBteXNwYW4gPSBk b2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CgkJCQkJCW15c3Bhbi5pbm5l ckhUTUwgPSBsaW5rb2JqLmlubmVySFRNTDsKCQkJCQkJdGRzW2ldLmluc2VydEJl Zm9yZShteXNwYW4sIGxpbmtvYmopOwoJCQkJCQl0ZHNbaV0ucmVtb3ZlQ2hpbGQo bGlua29iaik7CgkJCQkJfQoJCQkJfQoJCQkJZWxzZSBpZiAodHlwZW9mIHRkc1tp XS5vbmNsaWNrID09ICdmdW5jdGlvbicpCgkJCQl7CgkJCQkJdGRzW2ldLm9mdW5j ID0gdGRzW2ldLm9uY2xpY2s7CgkJCQkJdGRzW2ldLm9uY2xpY2sgPSB2Ql9Qb3B1 cF9FdmVudHMucHJvdG90eXBlLm1lbnVvcHRpb25fb25jbGlja19mdW5jdGlvbjsK CQkJCX0KCQkJfQoJCX0KCX0KfTsKCi8qKgoqIFNob3cgdGhlIG1lbnUKKgoqIEBw YXJhbQlvYmplY3QJVGhlIGNvbnRyb2wgb2JqZWN0IGNhbGxpbmcgdGhlIG1lbnUK KiBAcGFyYW0JYm9vbGVhbglVc2Ugc2xpZGUgKGZhbHNlKSBvciBvcGVuIGluc3Rh bnRseT8gKHRydWUpCiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLnNob3cgPSBm dW5jdGlvbihvYmosIGluc3RhbnQpCnsKCWlmICghdkJtZW51LmFjdGl2ZSkKCXsK CQlyZXR1cm4gZmFsc2U7Cgl9CgllbHNlIGlmICghdGhpcy5tZW51b2JqKQoJewoJ CXRoaXMuaW5pdF9tZW51KCk7Cgl9CgoJaWYgKCF0aGlzLm1lbnVvYmopCgl7CgkJ cmV0dXJuIGZhbHNlOwoJfQoKCWlmICh2Qm1lbnUuYWN0aXZlbWVudSAhPSBudWxs KQoJewoJCXZCbWVudS5tZW51c1t2Qm1lbnUuYWN0aXZlbWVudV0uaGlkZSgpOwoJ fQoKCXZCbWVudS5hY3RpdmVtZW51ID0gdGhpcy5jb250cm9sa2V5OwoKCXRoaXMu bWVudW9iai5zdHlsZS5kaXNwbGF5ID0gJyc7CglpZiAodGhpcy5zbGlkZV9vcGVu KQoJewoJCXRoaXMubWVudW9iai5zdHlsZS5jbGlwID0gJ3JlY3QoYXV0bywgMHB4 LCAwcHgsIGF1dG8pJzsKCX0KCXRoaXMucG9zID0gdGhpcy5mZXRjaF9vZmZzZXQo b2JqKTsKCXRoaXMubGVmdHB4ID0gdGhpcy5wb3NbJ2xlZnQnXTsKCXRoaXMudG9w cHggPSB0aGlzLnBvc1sndG9wJ10gKyBvYmoub2Zmc2V0SGVpZ2h0OwoKCWlmICgo dGhpcy5sZWZ0cHggKyB0aGlzLm1lbnVvYmoub2Zmc2V0V2lkdGgpID49IGRvY3Vt ZW50LmJvZHkuY2xpZW50V2lkdGggJiYgKHRoaXMubGVmdHB4ICsgb2JqLm9mZnNl dFdpZHRoIC0gdGhpcy5tZW51b2JqLm9mZnNldFdpZHRoKSA+IDApCgl7CgkJdGhp cy5sZWZ0cHggPSB0aGlzLmxlZnRweCArIG9iai5vZmZzZXRXaWR0aCAtIHRoaXMu bWVudW9iai5vZmZzZXRXaWR0aDsKCQl0aGlzLmRpcmVjdGlvbiA9ICdyaWdodCc7 Cgl9CgllbHNlCgl7CgkJdGhpcy5kaXJlY3Rpb24gPSAnbGVmdCcKCX0KCgl0aGlz Lm1lbnVvYmouc3R5bGUubGVmdCA9IHRoaXMubGVmdHB4ICsgJ3B4JzsKCXRoaXMu bWVudW9iai5zdHlsZS50b3AgID0gdGhpcy50b3BweCArICdweCc7CgoJaWYgKCFp bnN0YW50ICYmIHRoaXMuc2xpZGVfb3BlbikKCXsKCQl0aGlzLmludGVydmFsWCA9 IE1hdGguY2VpbCh0aGlzLm1lbnVvYmoub2Zmc2V0V2lkdGggLyB0aGlzLm9wZW5f c3RlcHMpOwoJCXRoaXMuaW50ZXJ2YWxZID0gTWF0aC5jZWlsKHRoaXMubWVudW9i ai5vZmZzZXRIZWlnaHQgLyB0aGlzLm9wZW5fc3RlcHMpOwoJCXRoaXMuc2xpZGUo KHRoaXMuZGlyZWN0aW9uID09ICdsZWZ0JyA/IDAgOiB0aGlzLm1lbnVvYmoub2Zm c2V0V2lkdGgpLCAwLCAwKTsKCX0KCWVsc2UgaWYgKHRoaXMubWVudW9iai5zdHls ZS5jbGlwICYmIHRoaXMuc2xpZGVfb3BlbikKCXsKCQl0aGlzLm1lbnVvYmouc3R5 bGUuY2xpcCA9ICdyZWN0KGF1dG8sIGF1dG8sIGF1dG8sIGF1dG8pJzsKCX0KCgkv LyBkZWFsIHdpdGggSUUgcHV0dGluZyA8c2VsZWN0PiBlbGVtZW50cyBvbiB0b3Ag b2YgZXZlcnl0aGluZwoJdGhpcy5oYW5kbGVfb3ZlcmxhcHModHJ1ZSk7CgoJaWYg KHRoaXMuY29udHJvbG9iai5lZGl0b3JpZCkKCXsKCQl0aGlzLmNvbnRyb2xvYmou c3RhdGUgPSB0cnVlOwoJCS8vdGhpcy5jb250cm9sb2JqLmVkaXRvci5tZW51X2Nv bnRleHQodGhpcy5jb250cm9sb2JqLCAnbW91c2Vkb3duJyk7CgkJdkJfRWRpdG9y W3RoaXMuY29udHJvbG9iai5lZGl0b3JpZF0ubWVudV9jb250ZXh0KHRoaXMuY29u dHJvbG9iaiwgJ21vdXNlZG93bicpOwoJfQp9OwoKLyoqCiogSGlkZSB0aGUgbWVu dQoqLwp2Ql9Qb3B1cF9NZW51LnByb3RvdHlwZS5oaWRlID0gZnVuY3Rpb24oZSkK ewoKCWlmIChlICYmIGUuYnV0dG9uICYmIGUuYnV0dG9uICE9IDEpCgl7CgkJLy8g Z2V0IGFyb3VuZCBzb21lIGNvbnRleHQgbWVudSBpc3N1ZXMgZXRjLgoJCXJldHVy biB0cnVlOwoJfQoKCXRoaXMuc3RvcF9zbGlkZSgpOwoKCXRoaXMubWVudW9iai5z dHlsZS5kaXNwbGF5ID0gJ25vbmUnOwoKCXRoaXMuaGFuZGxlX292ZXJsYXBzKGZh bHNlKTsKCglpZiAodGhpcy5jb250cm9sb2JqLmVkaXRvcmlkKQoJewoJCXRoaXMu Y29udHJvbG9iai5zdGF0ZSA9IGZhbHNlOwoJCS8vdGhpcy5jb250cm9sb2JqLmVk aXRvci5tZW51X2NvbnRleHQodGhpcy5jb250cm9sb2JqLCAnbW91c2VvdXQnKTsK CQl2Ql9FZGl0b3JbdGhpcy5jb250cm9sb2JqLmVkaXRvcmlkXS5tZW51X2NvbnRl eHQodGhpcy5jb250cm9sb2JqLCAnbW91c2VvdXQnKTsKCX0KCgl2Qm1lbnUuYWN0 aXZlbWVudSA9IG51bGw7Cn07CgovKioKKiBIb3ZlciBiZWhhdmlvdXIgZm9yIGNv bnRyb2wgb2JqZWN0CiovCnZCX1BvcHVwX01lbnUucHJvdG90eXBlLmhvdmVyID0g ZnVuY3Rpb24ob2JqKQp7CglpZiAodkJtZW51LmFjdGl2ZW1lbnUgIT0gbnVsbCkK CXsKCQlpZiAodkJtZW51Lm1lbnVzW3ZCbWVudS5hY3RpdmVtZW51XS5jb250cm9s a2V5ICE9IHRoaXMuaWQpCgkJewoJCQl0aGlzLnNob3cob2JqLCB0cnVlKTsKCQl9 Cgl9Cn07CgovKioKKiBTbGlkZXMgbWVudSBvcGVuCioKKiBAcGFyYW0JaW50ZWdl cglDbGlwIFgKKiBAcGFyYW0JaW50ZWdlcglDbGlwIFkKKiBAcGFyYW0JaW50ZWdl cglPcGFjaXR5ICgwLTEwMCkKKi8KdkJfUG9wdXBfTWVudS5wcm90b3R5cGUuc2xp ZGUgPSBmdW5jdGlvbihjbGlwWCwgY2xpcFksIG9wYWNpdHkpCnsKCWlmICh0aGlz LmRpcmVjdGlvbiA9PSAnbGVmdCcgJiYgKGNsaXBYIDwgdGhpcy5tZW51b2JqLm9m ZnNldFdpZHRoIHx8IGNsaXBZIDwgdGhpcy5tZW51b2JqLm9mZnNldEhlaWdodCkp Cgl7CgkJaWYgKHZCbWVudS5vcGVuX2ZhZGUgJiYgaXNfaWUpCgkJewoJCQlvcGFj aXR5ICs9IDEwOwoJCQl0aGlzLm1lbnVvYmouZmlsdGVycy5pdGVtKCdEWEltYWdl VHJhbnNmb3JtLk1pY3Jvc29mdC5hbHBoYScpLm9wYWNpdHkgPSBvcGFjaXR5OwoJ CX0KCgkJY2xpcFggKz0gdGhpcy5pbnRlcnZhbFg7CgkJY2xpcFkgKz0gdGhpcy5p bnRlcnZhbFk7CgoJCXRoaXMubWVudW9iai5zdHlsZS5jbGlwID0gInJlY3QoYXV0 bywgIiArIGNsaXBYICsgInB4LCAiICsgY2xpcFkgKyAicHgsIGF1dG8pIjsKCQl0 aGlzLnNsaWRldGltZXIgPSBzZXRUaW1lb3V0KCJ2Qm1lbnUubWVudXNbdkJtZW51 LmFjdGl2ZW1lbnVdLnNsaWRlKCIgKyBjbGlwWCArICIsICIgKyBjbGlwWSArICIs ICIgKyBvcGFjaXR5ICsgIik7IiwgMCk7Cgl9CgllbHNlIGlmICh0aGlzLmRpcmVj dGlvbiA9PSAncmlnaHQnICYmIChjbGlwWCA+IDAgfHwgY2xpcFkgPCB0aGlzLm1l bnVvYmoub2Zmc2V0SGVpZ2h0KSkKCXsKCQlpZiAodkJtZW51Lm9wZW5fZmFkZSAm JiBpc19pZSkKCQl7CgkJCW9wYWNpdHkgKz0gMTA7CgkJCW1lbnVvYmouZmlsdGVy cy5pdGVtKCdEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5hbHBoYScpLm9wYWNp dHkgPSBvcGFjaXR5OwoJCX0KCgkJY2xpcFggLT0gdGhpcy5pbnRlcnZhbFg7CgkJ Y2xpcFkgKz0gdGhpcy5pbnRlcnZhbFk7CgoJCXRoaXMubWVudW9iai5zdHlsZS5j bGlwID0gInJlY3QoYXV0bywgIiArIHRoaXMubWVudW9iai5vZmZzZXRXaWR0aCAr ICJweCwgIiArIGNsaXBZICsgInB4LCAiICsgY2xpcFggKyAicHgpIjsKCQl0aGlz LnNsaWRldGltZXIgPSBzZXRUaW1lb3V0KCJ2Qm1lbnUubWVudXNbdkJtZW51LmFj dGl2ZW1lbnVdLnNsaWRlKCIgKyBjbGlwWCArICIsICIgKyBjbGlwWSArICIsICIg KyBvcGFjaXR5ICsgIik7IiwgMCk7Cgl9CgllbHNlCgl7CgkJdGhpcy5zdG9wX3Ns aWRlKCk7Cgl9Cn07CgovKioKKiBBYm9ydCBtZW51IHNsaWRlcgoqLwp2Ql9Qb3B1 cF9NZW51LnByb3RvdHlwZS5zdG9wX3NsaWRlID0gZnVuY3Rpb24oKQp7CgljbGVh clRpbWVvdXQodGhpcy5zbGlkZXRpbWVyKTsKCgl0aGlzLm1lbnVvYmouc3R5bGUu Y2xpcCA9ICdyZWN0KGF1dG8sIGF1dG8sIGF1dG8sIGF1dG8pJzsKCglpZiAodkJt ZW51Lm9wZW5fZmFkZSAmJiBpc19pZSkKCXsKCQl0aGlzLm1lbnVvYmouZmlsdGVy cy5pdGVtKCdEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5hbHBoYScpLm9wYWNp dHkgPSAxMDA7Cgl9Cn07CgovKioKKiBGZXRjaCBvZmZzZXQgb2YgYW4gb2JqZWN0 CioKKiBAcGFyYW0Jb2JqZWN0CVRoZSBvYmplY3QgdG8gYmUgbWVhc3VyZWQKKgoq IEByZXR1cm4JYXJyYXkJVGhlIG1lYXN1cmVkIG9mZnNldHMgbGVmdC90b3AKKi8K dkJfUG9wdXBfTWVudS5wcm90b3R5cGUuZmV0Y2hfb2Zmc2V0ID0gZnVuY3Rpb24o b2JqKQp7Cgl2YXIgbGVmdF9vZmZzZXQgPSBvYmoub2Zmc2V0TGVmdDsKCXZhciB0 b3Bfb2Zmc2V0ID0gb2JqLm9mZnNldFRvcDsKCgl3aGlsZSAoKG9iaiA9IG9iai5v ZmZzZXRQYXJlbnQpICE9IG51bGwpCgl7CgkJbGVmdF9vZmZzZXQgKz0gb2JqLm9m ZnNldExlZnQ7CgkJdG9wX29mZnNldCArPSBvYmoub2Zmc2V0VG9wOwoJfQoKCXJl dHVybiB7ICdsZWZ0JyA6IGxlZnRfb2Zmc2V0LCAndG9wJyA6IHRvcF9vZmZzZXQg fTsKfTsKCi8qKgoqIERldGVjdCBhbiBvdmVybGFwIG9mIGFuIG9iamVjdCBhbmQg YSBtZW51CioKKiBAcGFyYW0Jb2JqZWN0CU9iamVjdCB0byBiZSB0ZXN0ZWQgZm9y IG92ZXJsYXAKKiBAcGFyYW0JYXJyYXkJQXJyYXkgb2YgZGltZW5zaW9ucyBmb3Ig bWVudSBvYmplY3QKKgoqIEByZXR1cm4JYm9vbGVhbglUcnVlIGlmIG92ZXJsYXAK Ki8KdkJfUG9wdXBfTWVudS5wcm90b3R5cGUub3ZlcmxhcHMgPSBmdW5jdGlvbihv YmosIG0pCnsKCXZhciBzID0gbmV3IEFycmF5KCk7Cgl2YXIgcG9zID0gdGhpcy5m ZXRjaF9vZmZzZXQob2JqKTsKCXNbJ0wnXSA9IHBvc1snbGVmdCddOwoJc1snVCdd ID0gcG9zWyd0b3AnXTsKCXNbJ1InXSA9IHNbJ0wnXSArIG9iai5vZmZzZXRXaWR0 aDsKCXNbJ0InXSA9IHNbJ1QnXSArIG9iai5vZmZzZXRIZWlnaHQ7CgoKCWlmIChz WydMJ10gPiBtWydSJ10gfHwgc1snUiddIDwgbVsnTCddIHx8IHNbJ1QnXSA+IG1b J0InXSB8fCBzWydCJ10gPCBtWydUJ10pCgl7CgkJcmV0dXJuIGZhbHNlOwoJfQoJ cmV0dXJuIHRydWU7Cn07CgovKioKKiBIYW5kbGUgSUUgb3ZlcmxhcHBpbmcgPHNl bGVjdD4gZWxlbWVudHMKKgoqIEBwYXJhbQlib29sZWFuCUhpZGUgKHRydWUpIG9y IHNob3cgKGZhbHNlKSBvdmVybGFwcGluZyA8c2VsZWN0PiBlbGVtZW50cwoqLwp2 Ql9Qb3B1cF9NZW51LnByb3RvdHlwZS5oYW5kbGVfb3ZlcmxhcHMgPSBmdW5jdGlv bihkb2hpZGUpCnsKCWlmIChpc19pZSkKCXsKCQl2YXIgc2VsZWN0cyA9IGZldGNo X3RhZ3MoZG9jdW1lbnQsICdzZWxlY3QnKTsKCgkJaWYgKGRvaGlkZSkKCQl7CgkJ CXZhciBtZW51YXJlYSA9IG5ldyBBcnJheSgpOyBtZW51YXJlYSA9IHsKCQkJCSdM JyA6IHRoaXMubGVmdHB4LAoJCQkJJ1InIDogdGhpcy5sZWZ0cHggKyB0aGlzLm1l bnVvYmoub2Zmc2V0V2lkdGgsCgkJCQknVCcgOiB0aGlzLnRvcHB4LAoJCQkJJ0In IDogdGhpcy50b3BweCArIHRoaXMubWVudW9iai5vZmZzZXRIZWlnaHQKCQkJfTsK CgkJCWZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0cy5sZW5ndGg7IGkrKykKCQkJ ewoJCQkJaWYgKHRoaXMub3ZlcmxhcHMoc2VsZWN0c1tpXSwgbWVudWFyZWEpKQoJ CQkJewoJCQkJCXZhciBoaWRlID0gdHJ1ZTsKCQkJCQl2YXIgcyA9IHNlbGVjdHNb aV07CgkJCQkJd2hpbGUgKHMgPSBzLnBhcmVudE5vZGUpCgkJCQkJewoJCQkJCQlp ZiAocy5jbGFzc05hbWUgPT0gJ3ZibWVudV9wb3B1cCcpCgkJCQkJCXsKCQkJCQkJ CWhpZGUgPSBmYWxzZTsKCQkJCQkJCWJyZWFrOwoJCQkJCQl9CgkJCQkJfQoKCQkJ CQlpZiAoaGlkZSkKCQkJCQl7CgkJCQkJCXNlbGVjdHNbaV0uc3R5bGUudmlzaWJp bGl0eSA9ICdoaWRkZW4nOwoJCQkJCQlhcnJheV9wdXNoKHZCbWVudS5oaWRkZW5f c2VsZWN0cywgaSk7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJ CXdoaWxlICh0cnVlKQoJCQl7CgkJCQl2YXIgaSA9IGFycmF5X3BvcCh2Qm1lbnUu aGlkZGVuX3NlbGVjdHMpOwoJCQkJaWYgKHR5cGVvZiBpID09ICd1bmRlZmluZWQn IHx8IGkgPT0gbnVsbCkKCQkJCXsKCQkJCQlicmVhazsKCQkJCX0KCQkJCWVsc2UK CQkJCXsKCQkJCQlzZWxlY3RzW2ldLnN0eWxlLnZpc2liaWxpdHkgPSAndmlzaWJs ZSc7CgkJCQl9CgkJCX0KCQl9Cgl9Cn07CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwovLyBNZW51IGV2ZW50IGhhbmRsZXIgZnVuY3Rpb25zCgovKioK KiBDbGFzcyBjb250YWluaW5nIG1lbnUgcG9wdXAgZXZlbnQgaGFuZGxlcnMKKi8K ZnVuY3Rpb24gdkJfUG9wdXBfRXZlbnRzKCkKewp9OwoKLyoqCiogSGFuZGxlcyBj b250cm9sIG9iamVjdCBjbGljayBldmVudHMKKi8KdkJfUG9wdXBfRXZlbnRzLnBy b3RvdHlwZS5jb250cm9sb2JqX29uY2xpY2sgPSBmdW5jdGlvbihlKQp7CglpZiAo dHlwZW9mIGRvX2FuX2UgPT0gJ2Z1bmN0aW9uJykKCXsKCQlkb19hbl9lKGUpOwoJ CWlmICh2Qm1lbnUuYWN0aXZlbWVudSA9PSBudWxsIHx8IHZCbWVudS5tZW51c1t2 Qm1lbnUuYWN0aXZlbWVudV0uY29udHJvbGtleSAhPSB0aGlzLmlkKQoJCXsKCQkJ dkJtZW51Lm1lbnVzW3RoaXMuaWRdLnNob3codGhpcyk7CgkJfQoJCWVsc2UKCQl7 CgkJCXZCbWVudS5tZW51c1t0aGlzLmlkXS5oaWRlKCk7CgkJfQoJfQp9OwoKLyoq CiogSGFuZGxlcyBjb250cm9sIG9iamVjdCBtb3VzZW92ZXIgZXZlbnRzCiovCnZC X1BvcHVwX0V2ZW50cy5wcm90b3R5cGUuY29udHJvbG9ial9vbm1vdXNlb3ZlciA9 IGZ1bmN0aW9uKGUpCnsKCWlmICh0eXBlb2YgZG9fYW5fZSA9PSAnZnVuY3Rpb24n KQoJewoJCWRvX2FuX2UoZSk7CgkJdkJtZW51Lm1lbnVzW3RoaXMuaWRdLmhvdmVy KHRoaXMpOwoJfQp9OwoKLyoqCiogSGFuZGxlcyBtZW51IG9wdGlvbiBjbGljayBl dmVudHMgZm9yIG9wdGlvbnMgd2l0aCBvbmNsaWNrIGV2ZW50cwoqLwp2Ql9Qb3B1 cF9FdmVudHMucHJvdG90eXBlLm1lbnVvcHRpb25fb25jbGlja19mdW5jdGlvbiA9 IGZ1bmN0aW9uKGUpCnsKCXRoaXMub2Z1bmMoZSk7Cgl2Qm1lbnUubWVudXNbdGhp cy5jb250cm9sa2V5XS5oaWRlKCk7Cn07CgovKioKKiBIYW5kbGVzIG1lbnUgb3B0 aW9uIGNsaWNrIGV2ZW50cyBmb3Igb3B0aW9ucyBjb250YWluaW5nIGxpbmtzCiov CnZCX1BvcHVwX0V2ZW50cy5wcm90b3R5cGUubWVudW9wdGlvbl9vbmNsaWNrX2xp bmsgPSBmdW5jdGlvbihlKQp7CgllID0gZSA/IGUgOiB3aW5kb3cuZXZlbnQ7CgoJ aWYgKGUuc2hpZnRLZXkgfHwgKHRoaXMudGFyZ2V0ICE9IG51bGwgJiYgdGhpcy50 YXJnZXQgIT0gJycpKQoJewoJCWlmICh0aGlzLnRhcmdldCAhPSBudWxsICYmIHRo aXMudGFyZ2V0LmNoYXJBdCgwKSAhPSAnXycpCgkJewoJCQl3aW5kb3cub3Blbih0 aGlzLmhyZWYsIHRoaXMudGFyZ2V0KTsKCQl9CgkJZWxzZQoJCXsKCQkJd2luZG93 Lm9wZW4odGhpcy5ocmVmKTsKCQl9Cgl9CgllbHNlCgl7CgkJd2luZG93LmxvY2F0 aW9uID0gdGhpcy5ocmVmOwoJfQoKCS8vIFNhZmFyaSBoYXMgImlzc3VlcyIgd2l0 aCByZXNldHRpbmcgd2hhdCB3YXMgY2xpY2tlZCBvbiwgc3VwZXIgbWlub3IgYW5k IEkgZG9udCBjYXJlCgllLmNhbmNlbEJ1YmJsZSA9IHRydWU7CglpZiAoZS5zdG9w UHJvcGFnYXRpb24pIGUuc3RvcFByb3BhZ2F0aW9uKCk7CglpZiAoZS5wcmV2ZW50 RGVmYXVsdCkgZS5wcmV2ZW50RGVmYXVsdCgpOwoKCXZCbWVudS5tZW51c1t0aGlz LmNvbnRyb2xrZXldLmhpZGUoKTsKCXJldHVybiBmYWxzZTsKfTsKCi8qKgoqIEhh bmRsZXMgbWVudSBvcHRpb24gbW91c2VvdmVyIGV2ZW50cwoqLwp2Ql9Qb3B1cF9F dmVudHMucHJvdG90eXBlLm1lbnVvcHRpb25fb25tb3VzZW92ZXIgPSBmdW5jdGlv bihlKQp7Cgl0aGlzLmNsYXNzTmFtZSA9ICd2Ym1lbnVfaGlsaXRlJyArICh0aGlz LmlzbGluayA/ICcgdmJtZW51X2hpbGl0ZV9hbGluaycgOiAnJyk7Cgl0aGlzLnN0 eWxlLmN1cnNvciA9IHBvaW50ZXJfY3Vyc29yOwp9OwoKLyoqCiogSGFuZGxlcyBt ZW51IG9wdGlvbiBtb3VzZW91dCBldmVudHMKKi8KdkJfUG9wdXBfRXZlbnRzLnBy b3RvdHlwZS5tZW51b3B0aW9uX29ubW91c2VvdXQgPSBmdW5jdGlvbihlKQp7Cgl0 aGlzLmNsYXNzTmFtZSA9ICd2Ym1lbnVfb3B0aW9uJyArICh0aGlzLmlzbGluayA/ ICcgdmJtZW51X29wdGlvbl9hbGluaycgOiAnJyk7Cgl0aGlzLnN0eWxlLmN1cnNv ciA9ICdkZWZhdWx0JzsKfTsKCi8qPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpcCnx8 ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCnx8ICMgQ1ZTOiAkUkNTZmlsZTogdmJ1bGxl dGluX21lbnUuanMsdiAkIC0gJFJldmlzaW9uOiAxLjU3ICQKfHwgIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKXCo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8= ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=vbulletin_ajax_reputation.js Content-Type: application/x-javascript; name=vbulletin_ajax_reputation.js Content-Location: http://www.suzukovod.ru/clientscript/vbulletin_ajax_reputation.js?v=361 Content-Transfer-Encoding: Base64 Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09KlwKfHwgIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMgfHwKfHwgIyB2QnVsbGV0aW4gMy42LjEKfHwgIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMgfHwKfHwgIyBDb3B5cmlnaHQgqTIwMDAtMjAwNiBKZWxzb2Z0IEVudGVycHJp c2VzIEx0ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4gfHwKfHwgIyBUaGlzIGZpbGUg bWF5IG5vdCBiZSByZWRpc3RyaWJ1dGVkIGluIHdob2xlIG9yIHNpZ25pZmljYW50 IHBhcnQuICMgfHwKfHwgIyAtLS0tLS0tLS0tLS0tLS0tIFZCVUxMRVRJTiBJUyBO T1QgRlJFRSBTT0ZUV0FSRSAtLS0tLS0tLS0tLS0tLS0tICMgfHwKfHwgIyBodHRw Oi8vd3d3LnZidWxsZXRpbi5jb20gfCBodHRwOi8vd3d3LnZidWxsZXRpbi5jb20v bGljZW5zZS5odG1sICMgfHwKfHwgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgfHwKXCo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ki8KCi8qKgoqIFJlZ2lzdGVyIGEgcG9zdCBm b3IgYWpheCByZXB1dGF0aW9uCioKKiBAcGFyYW0Jc3RyaW5nCVBvc3RpZAoqCiog QHJldHVybgl2Ql9SZXB1dGF0aW9uX09iamVjdAoqLwpmdW5jdGlvbiB2YnJlcF9y ZWdpc3Rlcihwb3N0aWQpCnsKCWlmICh0eXBlb2YgdkJyZXAgPT0gJ29iamVjdCcg JiYgdHlwZW9mIHBvc3RpZCAhPSAndW5kZWZpbmVkJykKCXsKCQlyZXR1cm4gdkJy ZXAucmVnaXN0ZXIocG9zdGlkKTsKCX0KfQoKLy8gIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLy8gdkJfUmVwdXRhdGlvbl9IYW5kbGVyCi8vICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCgovKioKKiB2QnVsbGV0aW4gcmVwdXRhdGlv biByZWdpc3RyeQoqLwpmdW5jdGlvbiB2Ql9SZXB1dGF0aW9uX0hhbmRsZXIoKQp7 Cgl0aGlzLnJlcHMgPSBuZXcgQXJyYXkoKTsKCXRoaXMuYWpheCA9IG5ldyBBcnJh eSgpOwp9OwoKLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLy8gdkJf UmVwdXRhdGlvbl9IYW5kbGVyIG1ldGhvZHMKCi8qKgoqIFJlZ2lzdGVyIGEgY29u dHJvbCBvYmplY3QgYXMgYSByZXB1dGF0aW9uIGNvbnRyb2wKKgoqIEBwYXJhbQlz dHJpbmcJSUQgb2YgdGhlIGNvbnRyb2wgb2JqZWN0CioKKiBAcmV0dXJuCXZCX1Jl cHV0YXRpb25fT2JqZWN0CiovCnZCX1JlcHV0YXRpb25fSGFuZGxlci5wcm90b3R5 cGUucmVnaXN0ZXIgPSBmdW5jdGlvbihwb3N0aWQpCnsKCWlmIChBSkFYX0NvbXBh dGlibGUgJiYgKHR5cGVvZiB2Yl9kaXNhYmxlX2FqYXggPT0gJ3VuZGVmaW5lZCcg fHwgdmJfZGlzYWJsZV9hamF4IDwgMikpCgl7CgkJdGhpcy5yZXBzW3Bvc3RpZF0g PSBuZXcgdkJfUmVwdXRhdGlvbl9PYmplY3QocG9zdGlkKTsKCQlpZiAob2JqID0g ZmV0Y2hfb2JqZWN0KCdyZXB1dGF0aW9uXycgKyBwb3N0aWQpKQoJCXsKCQkJb2Jq Lm9uY2xpY2sgPSB2Ql9SZXB1dGF0aW9uX09iamVjdC5wcm90b3R5cGUucmVwdXRh dGlvbl9jbGljazsKCQkJcmV0dXJuIHRoaXMucmVwc1twb3N0aWRdOwoJCX0KCX0K fTsKCi8vICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi8vIGluaXRpYWxp emUgcmVwdXRhdGlvbiByZWdpc3RyeQoKdkJyZXAgPSBuZXcgdkJfUmVwdXRhdGlv bl9IYW5kbGVyKCk7CgovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwov LyB2Ql9SZXB1dGF0aW9uX09iamVjdAovLyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwoKLyoqCiogdkJ1bGxldGluIFJlcHV0YXRpb24gY2xhc3MgY29uc3Ry dWN0b3IKKgoqIE1hbmFnZXMgYSBzaW5nbGUgcmVwdXRhdGlvbiBhbmQgY29udHJv bCBvYmplY3QKKiBJbml0aWFsaXplcyBjb250cm9sIG9iamVjdAoqCiogQHBhcmFt CXN0cmluZwlwb3N0aWQKKi8KZnVuY3Rpb24gdkJfUmVwdXRhdGlvbl9PYmplY3Qo cG9zdGlkKQp7Cgl0aGlzLnBvc3RpZCA9IHBvc3RpZDsKCXRoaXMuZGl2bmFtZSA9 ICdyZXB1dGF0aW9ubWVudV8nICsgcG9zdGlkICsgJ19tZW51JzsKCXRoaXMuZGl2 b2JqID0gbnVsbDsKCXRoaXMucG9zdG9iaiA9IGZldGNoX29iamVjdCgncG9zdCcg KyBwb3N0aWQpOwoKCXRoaXMudmJtZW51bmFtZSA9ICdyZXB1dGF0aW9ubWVudV8n ICsgcG9zdGlkOwoJdGhpcy52Ym1lbnUgPSBudWxsOwoKCXRoaXMueG1sX3NlbmRl cl9wb3B1bGF0ZSA9IG51bGw7Cgl0aGlzLnhtbF9zZW5kZXJfc3VibWl0ID0gbnVs bDsKCgl2YXIgbWUgPSB0aGlzOwoKCS8qKgoJKiBQb3B1bGF0ZSBPblJlYWR5U3Rh dGVDaGFuZ2UgY2FsbGJhY2suIFVzZXMgYSBjbG9zdXJlIHRvIGtlZXAgc3RhdGUu CgkqIFJlbWVtYmVyIHRvIHVzZSBtZSBpbnN0ZWFkIG9mICJ0aGlzIiBpbnNpZGUg dGhpcyBmdW5jdGlvbiEKCSovCgl0aGlzLm9ucmVhZHlzdGF0ZWNoYW5nZV9wb3B1 bGF0ZSA9IGZ1bmN0aW9uKCkKCXsKCQlpZiAobWUueG1sX3NlbmRlcl9wb3B1bGF0 ZS5oYW5kbGVyLnJlYWR5U3RhdGUgPT0gNCAmJiBtZS54bWxfc2VuZGVyX3BvcHVs YXRlLmhhbmRsZXIuc3RhdHVzID09IDIwMCkKCQl7CgkJCWlmIChtZS54bWxfc2Vu ZGVyX3BvcHVsYXRlLmhhbmRsZXIucmVzcG9uc2VYTUwpCgkJCXsKCQkJCS8vIGNo ZWNrIGZvciBlcnJvciBmaXJzdAoJCQkJdmFyIGVycm9yID0gbWUueG1sX3NlbmRl cl9wb3B1bGF0ZS5mZXRjaF9kYXRhKGZldGNoX3RhZ3MobWUueG1sX3NlbmRlcl9w b3B1bGF0ZS5oYW5kbGVyLnJlc3BvbnNlWE1MLCAnZXJyb3InKVswXSk7CgkJCQlp ZiAoZXJyb3IpCgkJCQl7CgkJCQkJYWxlcnQoZXJyb3IpOwoJCQkJfQoJCQkJZWxz ZQoJCQkJewoJCQkJCWlmICghbWUuZGl2b2JqKQoJCQkJCXsKCQkJCQkJLy8gQ3Jl YXRlIG5ldyBkaXYgdG8gaG9sZCByZXB1dGF0aW9uIG1lbnUgaHRtbAoJCQkJCQlt ZS5kaXZvYmogPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKCQkJCQkJ bWUuZGl2b2JqLmlkID0gbWUuZGl2bmFtZTsKCQkJCQkJbWUuZGl2b2JqLnN0eWxl LmRpc3BsYXkgPSAnbm9uZSc7CgkJCQkJCW1lLmRpdm9iai5vbmtleXByZXNzID0g dkJfUmVwdXRhdGlvbl9PYmplY3QucHJvdG90eXBlLnJlcGlucHV0X29ua2V5cHJl c3M7CgkJCQkJCW1lLnBvc3RvYmoucGFyZW50Tm9kZS5hcHBlbmRDaGlsZChtZS5k aXZvYmopOwoKCQkJCQkJbWUudmJtZW51ID0gdmJtZW51X3JlZ2lzdGVyKG1lLnZi bWVudW5hbWUsIHRydWUpOwoJCQkJCQkvLyBSZW1vdmUgbWVudSdzIG1vdXNlb3Zl ciBldmVudAoJCQkJCQlmZXRjaF9vYmplY3QobWUudmJtZW51LmNvbnRyb2xrZXkp Lm9ubW91c2VvdmVyID0gJyc7CgkJCQkJCWZldGNoX29iamVjdChtZS52Ym1lbnUu Y29udHJvbGtleSkub25jbGljayA9ICcnOwoJCQkJCX0KCgkJCQkJbWUuZGl2b2Jq LmlubmVySFRNTCA9IG1lLnhtbF9zZW5kZXJfcG9wdWxhdGUuZmV0Y2hfZGF0YShm ZXRjaF90YWdzKG1lLnhtbF9zZW5kZXJfcG9wdWxhdGUuaGFuZGxlci5yZXNwb25z ZVhNTCwgJ3JlcHV0YXRpb25iaXQnKVswXSk7CgoJCQkJCXZhciBpbnB1dHMgPSBm ZXRjaF90YWdzKG1lLmRpdm9iaiwgJ2lucHV0Jyk7CgkJCQkJZm9yICh2YXIgaSA9 IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBpKyspCgkJCQkJewoJCQkJCQlpZiAoaW5w dXRzW2ldLnR5cGUgPT0gJ3N1Ym1pdCcpCgkJCQkJCXsKCQkJCQkJCXZhciBzYnV0 dG9uID0gaW5wdXRzW2ldOwoJCQkJCQkJdmFyIGJ1dHRvbiA9IGRvY3VtZW50LmNy ZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7CgkJCQkJCQlidXR0b24udHlwZSA9ICdidXR0 b24nOwoJCQkJCQkJYnV0dG9uLmNsYXNzTmFtZSA9IHNidXR0b24uY2xhc3NOYW1l OwoJCQkJCQkJYnV0dG9uLnZhbHVlID0gc2J1dHRvbi52YWx1ZTsKCQkJCQkJCWJ1 dHRvbi5vbmNsaWNrID0gdkJfUmVwdXRhdGlvbl9PYmplY3QucHJvdG90eXBlLnN1 Ym1pdF9vbmNsaWNrOwoJCQkJCQkJc2J1dHRvbi5wYXJlbnROb2RlLmluc2VydEJl Zm9yZShidXR0b24sIHNidXR0b24pOwoJCQkJCQkJc2J1dHRvbi5wYXJlbnROb2Rl LnJlbW92ZUNoaWxkKHNidXR0b24pOwoJCQkJCQkJYnV0dG9uLm5hbWUgPSBzYnV0 dG9uLm5hbWU7CgkJCQkJCQlidXR0b24uaWQgPSBzYnV0dG9uLm5hbWUgKyAnXycg KyBtZS5wb3N0aWQKCQkJCQkJfQoJCQkJCX0KCgkJCQkJbWUudmJtZW51LnNob3co ZmV0Y2hfb2JqZWN0KG1lLnZibWVudW5hbWUpKTsKCQkJCX0KCQkJfQoKCQkJaWYg KGlzX2llKQoJCQl7CgkJCQltZS54bWxfc2VuZGVyX3BvcHVsYXRlLmhhbmRsZXIu YWJvcnQoKTsKCQkJfQoJCX0KCX0KCgkvKioKCSogU3VibWl0IE9uUmVhZHlTdGF0 ZUNoYW5nZSBjYWxsYmFjay4gVXNlcyBhIGNsb3N1cmUgdG8ga2VlcCBzdGF0ZS4K CSogUmVtZW1iZXIgdG8gdXNlIG1lIGluc3RlYWQgb2YgInRoaXMiIGluc2lkZSB0 aGlzIGZ1bmN0aW9uIQoJKi8KCXRoaXMub25yZWFkeXN0YXRlY2hhbmdlX3N1Ym1p dCA9IGZ1bmN0aW9uKCkKCXsKCQlpZiAobWUueG1sX3NlbmRlcl9zdWJtaXQuaGFu ZGxlci5yZWFkeVN0YXRlID09IDQgJiYgbWUueG1sX3NlbmRlcl9zdWJtaXQuaGFu ZGxlci5zdGF0dXMgPT0gMjAwKQoJCXsKCQkJaWYgKG1lLnhtbF9zZW5kZXJfc3Vi bWl0LmhhbmRsZXIucmVzcG9uc2VYTUwpCgkJCXsKCQkJCS8vIFJlZ2lzdGVyIG5l dyBtZW51IGl0ZW0gZm9yIHRoaXMgcmVwdXRhdGlvbiBpY29uCgkJCQlpZiAoIW1l LnZibWVudSkKCQkJCXsKCQkJCQltZS52Ym1lbnUgPSB2Ym1lbnVfcmVnaXN0ZXIo bWUudmJtZW51bmFtZSwgdHJ1ZSk7CgkJCQkJLy8gUmVtb3ZlIG1lbnUncyBtb3Vz ZW92ZXIgZXZlbnQKCQkJCQlmZXRjaF9vYmplY3QobWUudmJtZW51LmNvbnRyb2xr ZXkpLm9ubW91c2VvdmVyID0gJyc7CgkJCQkJZmV0Y2hfb2JqZWN0KG1lLnZibWVu dS5jb250cm9sa2V5KS5vbmNsaWNrID0gJyc7CgkJCQl9CgoJCQkJLy8gY2hlY2sg Zm9yIGVycm9yIGZpcnN0CgkJCQl2YXIgZXJyb3IgPSBtZS54bWxfc2VuZGVyX3N1 Ym1pdC5mZXRjaF9kYXRhKGZldGNoX3RhZ3MobWUueG1sX3NlbmRlcl9zdWJtaXQu aGFuZGxlci5yZXNwb25zZVhNTCwgJ2Vycm9yJylbMF0pOwoJCQkJaWYgKGVycm9y KQoJCQkJewoJCQkJCW1lLnZibWVudS5oaWRlKGZldGNoX29iamVjdChtZS52Ym1l bnVuYW1lKSk7CgkJCQkJYWxlcnQoZXJyb3IpOwoJCQkJfQoJCQkJZWxzZQoJCQkJ ewoJCQkJCW1lLnZibWVudS5oaWRlKGZldGNoX29iamVjdChtZS52Ym1lbnVuYW1l KSk7CgkJCQkJdmFyIHJlcGluZm8gPSAgZmV0Y2hfdGFncyhtZS54bWxfc2VuZGVy X3N1Ym1pdC5oYW5kbGVyLnJlc3BvbnNlWE1MLCAncmVwdXRhdGlvbicpWzBdOwoJ CQkJCXZhciByZXBkaXNwbGF5ID0gcmVwaW5mby5nZXRBdHRyaWJ1dGUoJ3JlcGRp c3BsYXknKTsKCQkJCQl2YXIgcmVwcG93ZXIgPSByZXBpbmZvLmdldEF0dHJpYnV0 ZSgncmVwcG93ZXInKTsKCQkJCQl2YXIgdXNlcmlkID0gcmVwaW5mby5nZXRBdHRy aWJ1dGUoJ3VzZXJpZCcpOwoKCQkJCQl2YXIgc3BhbnMgPSBmZXRjaF90YWdzKGRv Y3VtZW50LCAnc3BhbicpOwoJCQkJCXZhciBwb3N0aWQgPSBudWxsOwoJCQkJCXZh ciBtYXRjaCA9IG51bGw7CgoJCQkJCWZvciAodmFyIGkgPSAwOyBpIDwgc3BhbnMu bGVuZ3RoOyBpKyspCgkJCQkJewoJCQkJCQlpZiAobWF0Y2ggPSBzcGFuc1tpXS5p ZC5tYXRjaCgvXnJlcHBvd2VyXyhcZCspXyhcZCspJC8pKQoJCQkJCQl7CgkJCQkJ CQlpZiAobWF0Y2hbMl0gPT0gdXNlcmlkKQoJCQkJCQkJewoJCQkJCQkJCXNwYW5z W2ldLmlubmVySFRNTCA9IHJlcHBvd2VyOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJ CWVsc2UgaWYgKG1hdGNoID0gc3BhbnNbaV0uaWQubWF0Y2goL15yZXBkaXNwbGF5 XyhcZCspXyhcZCspJC8pKQoJCQkJCQl7CgkJCQkJCQlpZiAobWF0Y2hbMl0gPT0g dXNlcmlkKQoJCQkJCQkJewoJCQkJCQkJCXNwYW5zW2ldLmlubmVySFRNTCA9IHJl cGRpc3BsYXk7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQkJYWxlcnQobWUu eG1sX3NlbmRlcl9zdWJtaXQuZmV0Y2hfZGF0YShyZXBpbmZvKSk7CgkJCQl9CgkJ CX0KCgkJCWlmIChpc19pZSkKCQkJewoJCQkJbWUueG1sX3NlbmRlcl9zdWJtaXQu aGFuZGxlci5hYm9ydCgpOwoJCQl9CgkJfQoJfQp9CgovKioKKiBIYW5kbGVzIGNs aWNrIGV2ZW50cyBvbiByZXB1dGF0aW9uIGljb24KKi8KdkJfUmVwdXRhdGlvbl9P YmplY3QucHJvdG90eXBlLnJlcHV0YXRpb25fY2xpY2sgPSBmdW5jdGlvbiAoZSkK ewoJZSA9IGUgPyBlIDogd2luZG93LmV2ZW50OwoKCWRvX2FuX2UoZSk7Cgl2YXIg cG9zdGlkID0gdGhpcy5pZC5zdWJzdHIodGhpcy5pZC5sYXN0SW5kZXhPZignXycp ICsgMSk7Cgl2YXIgcmVwb2JqID0gdkJyZXAucmVwc1twb3N0aWRdOwoKCS8vIGZl dGNoIGFuZCByZXR1cm4gcmVwdXRhdGlvbiBodG1sCglpZiAocmVwb2JqLnZibWVu dSA9PSBudWxsIHx8IHZCbWVudS5hY3RpdmVtZW51ICE9IHJlcG9iai52Ym1lbnVu YW1lKQoJewoJCXJlcG9iai5wb3B1bGF0ZSgpOwoJfQoJZWxzZQoJewoJCXJlcG9i ai52Ym1lbnUuaGlkZSgpOwoJfQoKCXJldHVybiB0cnVlOwp9CgovKioKKiBIYW5k bGVzIGNsaWNrIGV2ZW50cyBvbiByZXB1dGF0aW9uIHN1Ym1pdCBidXR0b24KKi8K CnZCX1JlcHV0YXRpb25fT2JqZWN0LnByb3RvdHlwZS5zdWJtaXRfb25jbGljayA9 IGZ1bmN0aW9uIChlKQp7CgllID0gZSA/IGUgOiB3aW5kb3cuZXZlbnQ7Cglkb19h bl9lKGUpOwoKCXZhciBwb3N0aWQgPSB0aGlzLmlkLnN1YnN0cih0aGlzLmlkLmxh c3RJbmRleE9mKCdfJykgKyAxKTsKCXZhciByZXBvYmogPSB2QnJlcC5yZXBzW3Bv c3RpZF07CglyZXBvYmouc3VibWl0KCk7CgoJcmV0dXJuIGZhbHNlOwp9CgovKioK KglDYXRjaGVzIHRoZSBrZXlwcmVzcyBvZiB0aGUgcmVwdXRhdGlvbiBjb250cm9s cyB0byBrZWVwIHRoZW0gZnJvbSBzdWJtaXR0aW5nIHRvIGlubGluZU1vZAoqLwp2 Ql9SZXB1dGF0aW9uX09iamVjdC5wcm90b3R5cGUucmVwaW5wdXRfb25rZXlwcmVz cyA9IGZ1bmN0aW9uIChlKQp7CgllID0gZSA/IGUgOiB3aW5kb3cuZXZlbnQ7CgoJ aWYgKGUua2V5Q29kZSA9PSAxMykJLy8gcmV0dXJuIC8gRW50ZXIKCXsKCQl2YXIg dGVtcCA9IHRoaXMuaWQuc3BsaXQoL18vKTsKCQl2YXIgcG9zdGlkID0gdGVtcFsx XTsKCQl2YXIgcmVwb2JqID0gdkJyZXAucmVwc1twb3N0aWRdOwoJCXJlcG9iai5z dWJtaXQoKTsKCgkJcmV0dXJuIGZhbHNlOwoJfQoJZWxzZQoJewoJCXJldHVybiB0 cnVlOwoJfQp9CgovKioKKiBRdWVyaWVzIGZvciBwcm9wZXIgcmVzcG9uc2UgdG8g cmVwdXRhdGlvbiwgcmVzcG9uc2UgdmFyaWVzCioKKi8KdkJfUmVwdXRhdGlvbl9P YmplY3QucHJvdG90eXBlLnBvcHVsYXRlID0gZnVuY3Rpb24oKQp7Cgl0aGlzLnht bF9zZW5kZXJfcG9wdWxhdGUgPSBuZXcgdkJfQUpBWF9IYW5kbGVyKHRydWUpOwoJ dGhpcy54bWxfc2VuZGVyX3BvcHVsYXRlLm9ucmVhZHlzdGF0ZWNoYW5nZSh0aGlz Lm9ucmVhZHlzdGF0ZWNoYW5nZV9wb3B1bGF0ZSk7Cgl0aGlzLnhtbF9zZW5kZXJf cG9wdWxhdGUuc2VuZCgncmVwdXRhdGlvbi5waHA/cD0nICsgdGhpcy5wb3N0aWQs ICdwPScgKyB0aGlzLnBvc3RpZCArICcmYWpheD0xJyk7Cn0KCi8qKgoqIFN1Ym1p dHMgcmVwdXRhdGlvbgoqCiovCnZCX1JlcHV0YXRpb25fT2JqZWN0LnByb3RvdHlw ZS5zdWJtaXQgPSBmdW5jdGlvbigpCnsKCXRoaXMucHN1ZWRvZm9ybSA9IG5ldyB2 Ql9IaWRkZW5fRm9ybSgncmVwdXRhdGlvbi5waHAnKTsKCXRoaXMucHN1ZWRvZm9y bS5hZGRfdmFyaWFibGUoJ2FqYXgnLCAxKTsKCXRoaXMucHN1ZWRvZm9ybS5hZGRf dmFyaWFibGVzX2Zyb21fb2JqZWN0KHRoaXMuZGl2b2JqKTsKCgl0aGlzLnhtbF9z ZW5kZXJfc3VibWl0ID0gbmV3IHZCX0FKQVhfSGFuZGxlcih0cnVlKTsKCXRoaXMu eG1sX3NlbmRlcl9zdWJtaXQub25yZWFkeXN0YXRlY2hhbmdlKHRoaXMub25yZWFk eXN0YXRlY2hhbmdlX3N1Ym1pdCkKCXRoaXMueG1sX3NlbmRlcl9zdWJtaXQuc2Vu ZCgKCQkncmVwdXRhdGlvbi5waHA/ZG89YWRkcmVwdXRhdGlvbiZwPScgKyB0aGlz LnBzdWVkb2Zvcm0uZmV0Y2hfdmFyaWFibGUoJ3AnKSArICcmcmVwdXRhdGlvbj0n ICsgdGhpcy5wc3VlZG9mb3JtLmZldGNoX3ZhcmlhYmxlKCdyZXB1dGF0aW9uJykg KyAnJnJlYXNvbj0nICsgUEhQLnVybGVuY29kZSh0aGlzLnBzdWVkb2Zvcm0uZmV0 Y2hfdmFyaWFibGUoJ3JlYXNvbicpKSwKCQl0aGlzLnBzdWVkb2Zvcm0uYnVpbGRf cXVlcnlfc3RyaW5nKCkKCSk7Cn0KCi8qPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSpc Cnx8ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCnx8ICMgQ1ZTOiAkUkNTZmlsZTogdmJ1 bGxldGluX2FqYXhfcmVwdXRhdGlvbi5qcyx2ICQgLSAkUmV2aXNpb246IDEuNyAk Cnx8ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClwqPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PSov ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=post_old.gif Content-Type: image/gif; name=post_old.gif Content-Location: http://www.suzukovod.ru//images/statusicon/post_old.gif Content-Transfer-Encoding: Base64 R0lGODlhCgALAOZJADtDbJep14aWzLzT77LI6YGO1b3U8Ka64bzT7tDp/8/o/4CN 1HB/kbzS7nWEmc7n/8jg/3uLodHr/1NdioSVqpao1XSDmG99lai98CkzQ29+kU9Z c7HH6Ka468Pb/7rQ+1RghLHH51xnfJao1uT//258jaW54JOl34eVyoWVy7rR7bvS 7kNMeLrR7svl/0VMcztCa0ZQbXCAk8rk/3mKniQqQ2d2kF9siqW5319tfkFJdicy R9jz/y03SbXL9pao5MTc+bvR7SowTtr2/4yb6I+f7TtCbElTZFVheENbigAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAAEkALAAAAAAKAAsAQAdngEcRGgwMMjQ7SUkgJykC jwIoPzEODysDmAMtEjkWD0EICA0qMy49Nj4mB6sHOB9IQjpGALQAMCw1FCQKCb08 QBlJDgoIBsYGDUMlFx4cBM8EIRAiNx0jAdgBFRgbE0QLBeEFC0UvgQA7 ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=reputation_pos.gif Content-Type: image/gif; name=reputation_pos.gif Content-Location: http://www.suzukovod.ru//images/reputation/reputation_pos.gif Content-Transfer-Encoding: Base64 R0lGODlhCAAKAOYAAC7CNS6hMzDENmZtc2Vtc11WbzKdPTDMNzDFNl1eaV9falRa ZDDNN3NrgzKcPi7DNSzFMDDGNmdhdTDFNWDaZi/NOGVbdS7HMjvMQSyiLy7BNCzB NC7IMjbXOjKaP9DR4DHCOHZuhV9nbS2oNFphaDjSPTHUN4iBo15YbVtSbWxofDqF UDCYNWhheTOiPlZYZDLMN1zdYTSYPzPOOGRbeGFadVdfZi5uNT94UDXQOjtwQ76/ zS/CNV1Xbi2iM87P4mNbc1laZk3WVDCYNC2jMy/ENF9gajDDNjCXNVtRbcfH1IV9 lldXZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAIAAoAQAdSgEohQD0FNQ07EjdDLEgy Oi0iQjkTRwABCQMxHRwXEBkKNiAwEQIPRC8qKy4GDh44KAQUJUU8GgFGJBgzCAIA PkELGyYMBxUjTB9LFilJNCc/gQA7 ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=im_icq.gif Content-Type: image/gif; name=im_icq.gif Content-Location: http://www.suzukovod.ru//images/misc/im_icq.gif Content-Transfer-Encoding: Base64 R0lGODlhEQARAPfkAABDAARcJwBNABFUIABkGAI+AgAzAMvR2YyilQA/AN/i8NXZ 5gJBBBObHxVeKwA3ANjc6GvgcQlLF+Hi8X77gf//gd3h7RZmJLzFyewcg5YEVSGf ORZJIg+HFymNS3vyfhVhNEq6W/gPTjWiNyaVXytQLN3g7tMpgyddKSUbD0ugkMPL 0TGcW0O6fdc1VUKsQC6YLkSjRkOYgwl2Gh11ORd0MU3BZ4f9i0OgfjCWVFMzMzWi OI2wlgRVCG3hcQZdDi9mQC+yhYimnBdrOUy7SR5dIiaeOpeqqF6JLWzsbDSkQtzf 7GeQe0J2RDOSNC+PKCGIJyqAKjGBX13eX13SYEqKL1DDaTF8IRFJFD2pZJ2bIo4G VzKoa7XBw0KqbgtHDjqJPQdFCv/7e///TwtPDGLYYE96Vz9cSf9hmVZ+Yy6cPShB F1XQVgpSEGbhbc4ALWrxdhJzGNzP3gBkF//yVQBCAMvR2qTGrwBOANbZ5hFfKt/h 8L3HygBWHC+jNRdrKUq9S7cKSCxsMLDDvQZ9CnfxfI7/jwRXAT0PBErNSUa/dtye sC51YK3JuBFqFEaicnmTgv9KeWZ2KxBuGBR6QRKLGXvufk/KVTWkb2WYa0vFS+MA IABaAFDcaSCMMqwALTOmZ0icjLjExu3Aaf8xhmvkeQtVMjqDeDlrRS2ZSCGjIY3/ kC6dNliNXQBUAABIAP+6JgBOAR5PINnc6QuDG7HAvNTY4wlyPhJgH0nLTx+MHg9j Iv/5VXRuJQ92Qcais0BhE/AQPhOCFKBJa///ajwWCyKQOFyIYy2oNnaRjlavYoyj ljQgDQ9FFHHochh6J9PBJhqEOEt7HjhHMMAARUC2QzefeH2phDuabDqiOSVpSBZ+ ODNuOBFdDgB3ACaiJiKdLBRuTeDi8HPVcuHk8wAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAAOQALAAAAAARABEAAAj/AMkJFDjoWB5yFloJwjCw IblGqgg1mwVjCjI8yxwuIHctiRUQBTRFsAEKSEMwnMLI0pXl1JdqrFJZSzbwTiIl NSS8esaoCBs1HvSgaIKAXIxCXmRIGXAoHI1OLHY9KQNOwIFMlbCFUoEjgDQtVbYR ceZG0a0uCmIRoEQiyCM6Y2Ah8eToh4MjAk0wQ1QsRa8KxMRIqsPgQYk95Ca4CPbm E7VA0HiNGgcH0AhhAJYsioSG1AkN02YAu3LhxipLVGilkbNJRIYtaxpE6+OnBxYf hkpxYULu1zAd3TrE+dMm244EZL5t8AVhoLJcUCbhMvDigzEOkMzwaeiEQogcQ85E HrnUQptDgTy8GcFkSlwtV3OEnBcoihsqWwJX2HEYEAA7 ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=user_offline.gif Content-Type: image/gif; name=user_offline.gif Content-Location: http://www.suzukovod.ru//images/statusicon/user_offline.gif Content-Transfer-Encoding: Base64 R0lGODlhDwAPAPexADdHlFZikFVyz2Rull94xm1qdmVvlFNPa0FbsayqoVhiiFxZ TEZBNXd3jZCUrVt5zlx5yqqllUNXks7LwEBKbtHR38PG0l165lFlu1Jwyk1oxYOD ikhiuF120YaGj2lpbMvL0efq+evr8mJrkFl34+jo8ktmtubm736e7U9nqbO1v1Zv rbOzv+Pj7J/B/4ek5EVMXW5rf5aWnJCbzHl5ip+fqIKAc0FapYN+fmJiatXW6r/L 7ba51meC0tbW5tHV5myG1K2tw62tum1qXsjI0l9vw6KivH2f/z5Zt3KX/1xhary8 zKbF+09syqWlqT5HbVNv15uts4GAqjZGk0NBVNPV6d7e7IaGkvDw9lllkd7j98nJ 2lBMaUJascTS8lVhkGV6xUNAQ01qx0JIZtnc7tzc7HKU/7Gxwy0qP6TH/7Ozx+np 9FRjla2qo3Nzf0Vdx5mZrkxpwdrZ2WiJ25SUoVFsylJkl4aTtFl0uE5nuKCpxUpn wTVGgcfN6NTU4EZgwY6PsmyO/zpPsZaetlZjkXl2aTtSplVmmubp905rxmtqdaSr 1EJbs8vM1zYwKuPo+Zebq9nZ3re3vlFuxp+eptLS21dmlZGWtWyGzo+PrT9QlYuK jNDQ3K2+7Fdzx0hFOUtYgm9vjqKo0brF5Y6OojRJqMjEvszT6EhUe3d9oWllglpn mZubq5GRrUhGUq2trdTV6vX1/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAALEALAAAAAAPAA8AQAjfAGMJFPhDz51BFgYK3MEo QBsinCpsUQOnARUlTC7FelHKQIRXTmRs+MCAQhI+A/skMpHikCU7K+b84aFwVJw3 GFYpYNMhEAdIAr3k+TIBi4gWlVjQcRMG1REHsYAYyoLjCqlWgKQcGJNmikKBVRbN EKXj68BTeDRAIXFBgAQVCrVkEDTARqEhCz6BMoOgUaxHmAAkkBMJhKQaHnI4ItDE T6cuI0ydKLHGyhJWNFzBcJEqxB5NmygJORPESKZQaKL08BELkZgbhBQViKGKyxMU SMooJANmkicID+oUgTUwIAA7 ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=reputation.gif Content-Type: image/gif; name=reputation.gif Content-Location: http://www.suzukovod.ru//images/buttons/reputation.gif Content-Transfer-Encoding: Base64 R0lGODlhFQARAPe8AP///9To/+Tx/0thjUpfiHeCns/V3o+btJGgu5Khu+f+/1Zm iICRsF9zmv3+/j9GVcHR/56w0NXo/1Fmj1Bkja+2t214kH+PsNvs/2R2m0pfh0de jJSbo3eEnez5/2x/o21+nExjkG5+nXuKp7zD03iIpbbB0EZMWLbA05CfvJCdtbPD 7mNtg8XM2GFxkWx+n1xvlYWVtllsk1pvl/v//32Lqay4zMvU4GV4n8/a7+Tr/V5y nKGx08DS/15sh46btbK8x2h7odXl/7K80NDZ6OXs7HaHqF9ylkxijdTb4kxeguTm 6qSwx5+w2/L29+n7/4CPrEROYUpgjLXA1c7f/+3z9mt2lLzM7Jmlvpimzuju9KS0 4HF/nmJ0mF5zml5sjFJok1twnFhjfEVdi87V3r3R9naCnef//97x/97p/2x8o6Ow y5upxElgjdvl/Wd0kn+Os4GSscXN22Ruif39/vL//5CcvpCfuW56llpogmp9o3yN r+Ht/7LD8NHl+cjQ23eJq0Zei01hiLC6zu7x+LTA24iUodft/+T1+uv9/8DQ/q+9 54eRoH+QsLXH8l9sjFFnkc7T3Njh8f3//52pw9ri7O37/4WXw7/N4W19maO21kRb imVwhcrd//f4+eb3/19simd6olZjh4aTrFBiiFFljktfiVRliY6ZvD1FUO/09b3F 1UFIVZShvVVdblloiMHK1rjN3tns//b7/7vG2fn8/0tgiW2Aptzn/K+5zZqp09/r /0NbigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAALwALAAAAAAVABEAQAj/AHkJHDgQUoJCTEaMEbhn IAwDngBUMCREDRder/jY4HXCShkAIF8QJBjmkqZYcnLFGUmwC61GBAnk0CNwwi1e KQa6eGCBxyFEXkzN6fMEgAkKLAn+AZNB0hReoizREQgC1pAdI3/wwkLwVBoGpYiA 5HDFToc8X5o4CgASwB1ebwQsEajBR4kjSQW6yqKIigQ0NABUycsLx8BWlVB80jKK zAERs1hKAeLkRgOBoDANGmhkRoyRNT5QIkgK1wVegaAAErSmzcBNbAaoCDVwwS4E tsQswqCKkIMkLHTUAlCEkRsSkXg9EtCCl4xUEeoAWMVrA6sCqFYkAjBJIBwPAAjz HlIShVOmAUjwbIHQKcAZP0HECzSjq4csBW0BhCAYEAA7 ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=report.gif Content-Type: image/gif; name=report.gif Content-Location: http://www.suzukovod.ru//images/buttons/report.gif Content-Transfer-Encoding: Base64 R0lGODlhFQARAPeAAP////8AGfv7/P8AMv8AMf8AKP4AKP8AMP8HO193eEddi/8A L45NcRQoLf8GOf8qV/v7+wQZHvv6+yE0OF1okHRWeVBijFNjjWppkP8JPf8mUc0I NNkZRJJEayk8QVhpkphFazFCRvj///+Hn/8HPv9dgP8CONcALYxHbP82YIFMbf/H 0zRFSmRsk7pBZ8UiTMYAJsErVdEwVDhJTf8AHdsOPP9jg/9CaP9qif/I0sEUO/+4 xv+rvP+2xVppj15jif8tWeoALP/z9RQoLEZdi/8yWjNDR/9nixMnLP/E0F1qkhUp Lf8OP3tZef+guP8jUtcfSP8yW3Jpjv++y80vVYkVMI8+X6olSf+Opf8rVVRmkCY3 O//D0XlMbsQ1XP9Pcv93lP/v8ktcid4BL/8GOp8vWvYFNf/a4mheg21skmZdhAgc IY8xUf8aSP7+/5zBvf/E0f8lVP8AIvUAKv8ALW9agP+WqRQnLDdITIQfPpk7Xf8A HPv+/VFdiP/g55O3tENbigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAACH5BAEAAIAALAAAAAAVABEAQAjTAAEJHDjQRxU2RAgqJIhm zhcAAIwMgQBgBw0lCwWi4PACRJ0+GUMOVFFgBMQVAdKIvDDmCUSIWyK4eWmjjEiB VgrYmRJAys2BFQzgADBhjQgue1qI/BEkxUs8SARA7CHnw8I8JM5AFJLDyZE4DgjU wPATkBYYGQbIKDvQwok2EKNAYatgAxMACTwAKEKlrA4TfgCEaMAHQBYvN68QgAOR xRKpADS4CKmHDo+XM+5IeAmkw8IuB7C8BPDnDYAwScAgoLCwyYAbJR6QWWAmBgM1 YhYGBAA7 ------------JfP2pNVbk2l5NZbf6N7koj Content-Disposition: inline; filename=quote.gif Content-Type: image/gif; name=quote.gif Content-Location: http://www.suzukovod.ru//images/buttons/quote.gif Content-Transfer-Encoding: Base64 R0lGODlhRgAWAPf/AM7R11xwk1tsieLj5G6EqNy3lMOliamzyZaXm7ydg7Gnnr7A x+Ll8rG0u+7Go2B1meDh66WxxpScp4GRrIqZs1pukkxhhWyBpT1SddDR0lxqgXKR yX2Zytna3ImVq7SYgYOdysjIymRziauXiWd8oGl+osuvmNGwlmV5nTRJbbS6zH2K o4Kh1uXm53WLsXSCnq6xtfr6+3F8kVtymlt3p3GEpZmDc5q15ZyksaytsoWj2HWJ rNTX49vd4ImHiJOKhp267ZGs22xvdFRkgOnq70RZfe7u9ElegsqqkGV1laiywmV4 mZay5GJ7p09hf8nM0nONuoeNmXqSvMXH05qhqoqo3TlOcUBVebm6vGt5kHaVzaKl qnV0enqCkoyq342r4GiCsImk1aOor+3t7XqGnba6wkNVdcPJ2snL0HiQuoeSp6C9 719wklRpjMDByXeSwaySeGJ1lry/xJaSj9DR2WyKvoObxtTV1/Dx8NDS3cPFy2l5 mMPFzvLz9FFmifX19ml9nuK9mqSvxX+Lnebo64Ke0WFtgaawv0pcfGByk05jh9vd 6re+0HJ7jIGOpIem226Mwbm6wW99m3OHqnNqZb/CxrmkkIqYr8XHzrS3vNDU27y8 wba2tKSsur2+x3iNs3SUzHCPw8rN1ZKu4dPY57/F1aGqvZi16MbGybu9xWZ/rKmr r3mHoqKqtszO2f39/YmSndXW3FZoh5+qvHeBjv39//v7+/P09szO02uGtmJzkl5v j1dskFhngv////7+/qSruOXn9GN4nGF/s/7+/2J3m6CntKOsu8fI0HyVv2V3lYyc uPj5+a23y+Dg42d2l2h3l3mWx3eDmdWxikRTbYWgz9ba6D5QbmR0kUdYdWNaVUpl k3OTy3WTzO/v8G9qaNXY29HV25Ww38HDzMTDy46cs4aXs4CVuY2o12aEuKCgo8+0 nqeopqmOeIp8dszP0XuRtVRtmenr6+vr7Ovs70hhi36cz7m6xP79/lFecmtiXaSt vYqo2Y6p2Gd7nefp9iH5BAEAAP8ALAAAAABGABYAQAj/AP/9C8Yj07sQcipVwpKp QY5VOWA04BGsoigYbvJACCawo8ePIEOKDBmsmCowAcARcqPHE7JUetDg6+AuUCAk CbjIukCBwqc3UJYtO/eGg1EOIJJWqxamKbp+QYKIE8fkhtWr4oKEqRYNSi5VTWhs Y2StQjEUxTS8opcnz5Q5CHLM80XXlzcBFy6oqcvXFxW6HuLs9ZXI3zFfmuKwAUC3 ByFfrQI4oiuLFw66fZ74enLNCpmOPLb46tGhg7PTY+b1oWsrCqUEgQx8sCEkiqkD zZod2M27d4TfvwUJH05cEPDdzRidIcVRoIoZJC7E+duHiDM6T8bNgYtqDDNpk+Dt /xisxsUeup0E0B3Uqq4AbJcBCFBGRoOhLi0g7xpEt9ceVgIM0YUcvgCgyBHZCFTK M22Y0QBdeGTQAxpi0JLPNRiagcgRFnTYoSIghujhiEeUWGIRKKaY4hUsttgiBhhY YcUuDHjkSia+qAPDFqtgwRcxvrSQCgML6PPBNAnA4UMZi4zk5JNQkkLDMAH8Qkgk ZWCCzD0LuPEEMs7M8YElXBgiwh5gRMOCDjo84mYVVXghp5xf1GmnnXN6UcUjbOrA QiH2cKDFBqFAUkc6w1DwTykzqELAA2XEoMcCC3gSCx2xcDKCAyaMwAVeO3gA2Cf+ 0HVMCeWU84kLO1BwyQSXeP8gqwevKqHEIbPUMEE5l/R6STkTzHLIPsdI8sAM9QjA SAAolLAELb5AQAcdfLyFAAwLoIGFLZXs4cIkgw3ij3q+GDNEXT10QRc2JbQHgDIv 0IWDBrhAtsRkvuwSx2OZGCLBZmZggMg/pjwgTDFD3EHXL1jAcMdqfUmQCAkklGBx CdJp4ssx/hDg8ccg51UCCWg98EAAFfDShh8WHIEiizDCaAUGNQrkSiW+xEBMLbX8 0leQUwzEhzZwjKBOGXnUDOXSTHeUxyq+QKSOG1uIgUYOqND1RwMLvFaAAXDY4IMn EDRtNpRnlCBCX7Ywc0sffczzhzfffHBTAu0YMkMd3Gj/4bffoGgByuDdcMMNKBsk rvjijDdOaB25mNNROcMMw4s3A+jhRiqRbBILH+PwwY4NDnw9giFNQFEUB4FyUAib YfDjxRej1M4EE6ecAsTua/TuOxBr7H7KKPwUEk0ohw5DQzwM8NAoGDPo0YcbyGhO DjKRyDMHEg6cYIBOJFxCFwVQXECXEi6kkYYUySSjvhTwx9++FOsnkxQIduSfv/su EKAKWMhawXNKQIA4iOEXMfCZz4L0g3UogBMh0EANVjUYD7hgCejRBV0usQSNIeZn 4SBCOB5zC2D87BB/CEcPAMOLIyBCBQGIThxg4YtYIAMXfEBDJnyQA2fEgBm+kMAF /z4BLrqoYQfKoAswyPWXevlCGTUwIQAAcQEcPKYuwADEYKC4ghXWRRSIKEI2zlAB YZCgGIbwBRGmNYUG+GALGfDGK+jSAV1M4gL4yoQxLuMLXKjLF33IAn/y5Q9jFCgR gzGEBvJjjEQMUhbkggU1FuALNFwDA734xx7OIoxejMEIPIDAHX4QggHMkS8iaBYK diGAVgrACZrBQS92sQRArJINFVvCLibmj11IQxqyCGYFAsALJzjBD35ARC9kgCEZ WSEFKvjHIipgMifgzBfzUEcGWmALutADAMBoRC8C8IBiCAMFKKCYMNgggMJQjGTo PFgxTHaylK1MES1zWRFgJkwzGaXgnyv4iDU6AYMMbKELjWiEDKRBhhWswBEOZQUr XkBRikriohfdg0ahwdFnJOGjukhEIthA0pKyYRcoTekuSqqLZ7zAA4zoSEAAADs= ------------JfP2pNVbk2l5NZbf6N7koj--